Ambos estão tentando resolver os mesmos problemas.
A principal diferença em conchas CMD e * nix é o ecossistema em que cresceram. O CMD / BAT vem do MS-DOS enquanto o csh, o ksh, o bash, etc. todos começaram com um sabor particular do unix / linux.
Dito isso, você normalmente pode fazer muito mais com um shell * nix em termos de automação e programação, mas ambos são desajeitados comparados a uma linguagem moderna como o python, que também pode ser usada com uma interface shell.
A Microsoft, nos últimos anos, investiu pesadamente em powershell (outra CLI que vem com todas as versões atuais do Windows) e agora está bastante madura e possui muitos mais recursos do que o CMD / BAT.
Isso realmente se resume ao que você tem acesso e fica confortável usando em uma determinada plataforma. Você pode até executar o bash no Windows 10 agora!