To be honest I'm just too lazy to learn another shell.
I know Bash. It's a mess, but not as bad as cmd. So I use Git Bash.
I've briefly looked into new cross-platform shells like Elvish. It looks much better, but in the end, I do shell stuff only because I need to, I'd rather learn something like Haskell than another shell.
For 'shell' scripts that aren't extremely short I usually use Python.