Honestly if someone irons out the edge cases, python probably could JIT compile to machine code via cython. It would take a fair bit of memory and probably a bit slow on low powered systems but it would be so much faster if cached.
Technically I think python already has an intermediate step that it uses before it starts running a script that compiles it into a lower-ish language (at least the cpython interpreter does this, it probably isn’t a part of the language specification though)
The actual line between JIT languages and interpreted languages is pretty thin since I think most interpreted languages do something similar to minimize the amount that needs to be done at runtime
I think at this point in time it JIT compiles into byte code and cached which is more efficiently interpreted the next time that function is called.