*sigh* I hate having to explain this every time. Makes me feel old.
What is interpreted? It's a native runtime reading a non-native set of instructions, deciding what to do with it in real-time, and then running native code to execute those instructions.
What is JIT compiling? Well, "Just-In-Time" compiling is compiling just-in-time to run. So it's a native runtime reading a non-native set of instructions, deciding what to do with it in real-time, and then running native code to execute those instructions.
JIT is a catchword euphamism. It came into being because "interpreted" became a dirty word when compilers became available to the masses. It does tend to infer a level of native code caching that straight "interpreters" didn't used to have. The reality is, though, that any good interpreted language has some amount of caching. In fact modern versions of some historically "interpreted" languages that now cache are in many cases labelled JIT compilers vice interpreters.
Keep in mind too that JIT compiler caching, even for the most state-of-the-art bytecode languages, isn't as efficient as many people like to think. Many language structures and primitives require re-"compiling" each time they are encountered.
The reality is, JIT "compiling" is simply a somewhat more efficient interpreter.