It's a carryover from the MS-DOS days. One unfortunate part is that each program has to implement globs and any similar feature itself.
That could be the superior option. Moving command line expansion into a shared library gets rid of the problem where the command line with globs expanded is too long, could have standardized option handling earlier (that system-provided library for globbing could easily grow to handle option flags), could better handle file names containing spaces, etc.