Your question made me curious and I made an Internet search. I found one page with an explanation that I felt I partially understood, that is the Wikipedia one about interpreters (see https://en.wikipedia.org/wiki/Interpreter_(computing)#Compilers_versus_interpreters).
Let me quote the sentence which seems key to me (especially the first sentence):
A compiler can thus make almost all the conversions from source code semantics to the machine level once and for all (i.e. until the program has to be changed) while an interpreter has to do some of this conversion work every time a statement or function is executed. However, in an efficient interpreter, much of the translation work (including analysis of types, and similar) is factored out and done only the first time a program, module, function, or even statement, is run, thus quite akin to how a compiler works. However, a compiled program still runs much faster, under most circumstances, in part because compilers are designed to optimize code, and may be given ample time for this. This is especially true for simpler high-level languages without (many) dynamic data structures, checks, or type checking.