I think the big difference here is that the Unix shells are responsible for pathname expansion. For instance (in bash on Linux):


sh-2.04$ ls -l DER*pdf
-rw-r--r-- 1 morganek users 9720 Oct 16 2001 DEReport.pdf
sh-2.04$ set -o noglob
sh-2.04$ cp DER*pdf mtestme.pdf
cp: DER*pdf: No such file or directory
sh-2.04$ set +o noglob
sh-2.04$ cp DER*pdf mtestme.pdf
sh-2.04$ ls -l mtestme.pdf
-rw-r--r-- 1 morganek users 9720 Apr 27 11:47 mtestme.pdf
sh-2.04$


What is significant here is that the command, "cp", does not do pathname expansion. The expansion is handled by bash and passed to cp.

On the Windows side, the COMMAND.COM/CMD.EXE shells do not do expansion when parsing input to determine what to load. As an example, the XCOPY.EXE (or .COM--I forget) executable is responsible for expanding wildcards.