It might be a situation like the R language, where the language itself is too flexible to optimize well.
Loops and function calls in R are (or were, last I checked on R 3.x) yet another order of magnitude slower than CPython.
The flipside is that CPython itself has apparently gotten a lot faster in recent versions. In my unscientific homegrown testing, it beats even LuaJIT on string processing tasks.