It's not. It's limited and it looks ugly as hell. Hated it. Please stop telling people it's good
(but yes, it does support both ls and dir (but strangely there were a few things I could do in cmd that I couldn't do in powershell (can't remember what now though)))
I mostly just use cygwin's bash as my cli on windows.
The difference between the Windows console and the a Unix one is that you can't fix the Windows console. Some programs, i.e. Console, try, but the Windows CLI is buried way too deeply in CSRSS and ends up depending so tightly on the crap you see exposed in cmd.exe that attempts to build something better have largely failed.
cmd.exe is just an command interpreter (like bash) that needs a console/terminal (like xterm) just as any other CLI application does.
In other words, is not cmd.exe that sucks, but the Windows console. If Microsoft improved the console, cmd would immediately become nicer to use (though still hobbled by an inane scripting language).
</pedantry>
Sadly, for most definitions, cmd.exe is the console and the interpreter.
It is an actual binary executable too, and not a script, alias, symlink or builtin like I thought it was.