That's a lossy short answer. LuaJIT with JIT turned off still runs circles around CPython.
http://benchmarksgame.alioth.debian.org/u64/benchmark.php?te...
I think these questions are more to the point: Were the Python programmers as skilled as the Lua programmers? Do the programs do anything like the things your programs do?
So, with element of answer 1) ruled out as Lua is also dynamic, and 2) ruled out by your evidence, remains
3. Python's object model can lead to inefficient memory access