DOS / cmd.exe, last I checked, didn't have true pipes, true shell expansion, or true readline capabilities (unless it's now GPLd, which I very much doubt). It does have some history and tab completion (though that last works weirdly IMO).
By shell expansion: expansion of wildcard globs by the shell, and not by specific utilities. Piping -- I forget the specifics, but it's always seemed hit or miss, mostly miss. Readline: see readline(3).
DOS was primitive but the things you mentioned worked, even if they were a simulation. The end user was unaware, unless they needed real OS capabilites. In which case, why were they using DOS?
Cmd has a lot of improvements most people are not aware of because they were off by default. Still they refused to do further improvement necessary to make it very useful. There is a 3rd party shell called 4NT that is/was a compatible and very powerful replacement.
Which doesn't happen in any Bourne-compliant shell, as it's the shell which expands the wildcard, not the app (an unexpanded or escaped wildcard character can of course be passed to an executable).