Consider a program written in Python. Imagine it converted into some "internal representation" that will be used by the interpreter to execute it.
We can ask questions like "when I write a statement in Python that adds two integers (typically a single machine instruction in a C program), how many machine instructions are executed while running that statement?"
Those are questions about the interpreter - essentially, the raw speed and execution patterns of the language.
But when you're running a Python program (or one written in many other languages these days), there is a lot going on inside the process that you cannot map back to the Python statements you wrote. The most obvious is memory management, but there are several others.
This stuff takes time to execute and can change the behavior of the statements that you did write in subtle (and not so subtle ways).
Note that this kind of issue exists even for compiled languages too: when you run a program written in C++, the compiler will have inserted varying amounts of code to manage a variety of things into the executable that do not map back explicitly to the lines you wrote. This is the "C++ runtime" at work, and even though the "C++ language" may run at essentially machine speed, the runtime still adds overhead in some places.
Interpreted languages are the same, just worse (by various metrics)