For short, the term Interpreter I think is misunderstood here.
Definitely, but I strongly think it's you who is wrong here.
No, it's not compiled on the fly. With an interpreter, there is never a sequence of CPU instructions corresponding to the source code. All of the CPU instructions that run on the CPU are from the interpreter's executable. The source code (or sometimes bytecode, which is still not CPU instructions) is treated as data. New machine code is never created.
Compiling means creating new machine code that can run on the CPU. This happens in JIT. It doesn't happen in an interpreter.