That's just lazy. How that works is on any shell man page. If you fiddle with it a little bit you figure it out:
set -- "foo"
echo $#
set -- foo
echo $#
set -- "foo bar"
echo $#
set -- foo bar
echo $#
Of course, people just want their commands to run and not learn a whole new language. Then I come back to my initial point: the language itself is small and easy to remember once you internalize it, what makes it scary is the umbrella of different command line utilities that _seems_ to be a part of the language but it's not.