It's important to understand that CMD and Powershell are not bash shells and are not really trying to provide the same features. They were designed for a very different ecosystem. So they are an apples-to-oranges comparison to bash shells.
If you are on Windows 10 there is no question that WSL is the best option - being a full linux shell with deep Windows integration; rather than an emulation (Cygwin, Git Bash, etc) or a full virtual machine (which works but is slow).
If you are stuck on older Windows, you may find Cygwin works for git and bash; while cmd/Powershell are good for running node/npm/yarn commands (and I do mean just those commands, where the windows support is pretty good). There should be a "Nodejs command prompt" on your machine which is tailored for node, which works pretty well. I find I end up adding a .bat file to shim ls to dir though ;) Force of habit.
I've found that nodejs and Cygwin don't get along. Cygwin may also be slow on some systems, not sure why as some are just fine and others lag badly on i/o operations.
I don't recommend Git Bash as it's really just designed to provide git, not to be a full bash environment. There are some quirky little issues with it that make it unpredictable. That said, same goes for Cygwin.