The only times I've ever had a bash script run faster than Perl or Python is when it has handed most of the work off to another utility (eg written in C).
The actual bash processing bits seem much slower than Perl or Python.
Isn't most heavy work in bash done by piping data to C based utilities, with bash just being the "glue"?
I don't think that's true with Perl at least, unless something has changed dramatically very recently.
If you use it to glue/pipe bunch of tools written in C it can easily be faster.
That's one recommend approach towards Python. E.g. numpy.
The other approach is pure Python and then using PyPy's JIT.
Which often is what you do in Bash with grep, cp, mv, find etc...