An asterisk means "zero or more occurrences of the previous character or group".
In other words, the expression 's/[0-9]*/& &/' reads "replace zero or more consecutive occurrences of the digits 0-9 with whatever was matched twice, separated by a space".
Now consider this:
Code:
~$ echo foo bar | sed 's/[0-9]*/& &/'
foo bar
So
sed looks at the string "foo bar", and what do you know, there are exactly zero occurrences of the digit group, right there at the beginning of the string! So it dutifully replaces nothing with nothing twice, separated by a space. The result is the string " foo bar".