I look at the shell as the way you can run navigate your machine, control files, and run programs.
There simply are different shells available. I've commented before that many of them support legacy forms of commands as well as similar conventions as the other shells. Therefore my opinion is that it is really programmer's favoritism versus true technical reasons; because while each shell is different in how they allow you to accomplish things they all mostly allow you to accomplish the same things just using different syntax or styles.
There's a poll question on what shell people use and there's pages of comments accompanying the poll, here
I found my comments in that thread and "surprisingly" agree with them!
The last point was that I'd hate to spend a lot of time learning some new shell, say it was unique; buy into it and all, only to find that some time later it became unsupported; sort of like a favorite TV series which ran for one year. But also that the existing shells have changed over the years too.