I prefer Python when appropriate, but if you're going to "shell out" a lot and pipe a bunch of commands together it starts getting too verbose and loses it's elegance. I agree with other posters that bash is not intuitive, but if you've worked with it for a long time, there's nothing like being able to cat | grep | sed in a one-liner, rather than creating a bunch of Process objects, etc.
If you're doing cat, grep, sed I'd say that bash is very intuitive and I use it for that purpose all the time. If you're writing bash scripts, with if structures and loops and everything, then just python.
Perhaps an unpopular opinion, but I still prefer to stay in bash even when I need loops and conditionals. If I'm already writing in Python, then sure, Python it is. Or ruby, or js, or whatever I'm in. But when I'm in bash and I can do it easily enough in bash, why complicate?