The primary role of a shell is to let you run the programs that are installed on your system. As a consequence, all command line shells let you run pretty much the same commands. The differences are a very small number of commands that are built into the shells themselves, which vary a little between shells.
Shells differ mainly in terms of their programming facilities and their command line capabilities (completion, history recall, syntactic convenience, etc.). See
What are the fundamental differences between the mainstream *NIX shells?. Shells are responsible for command line edition and this too varies between shells.
For interactive use, bash is the default on Linux, zsh is the default on macOS. If you've started to get used to bash, you can read my guide to why zsh is better. The only other serious contender for interactive use is fish which has nice defaults but little configurability.