In simple terms, this is the difference:
Native Compiled language: You write your code, you run the compiler and the compiler turns it into machine instructions (raw bytes) that the CPU itself can read and execute.
Interpreted language: You are writing a script and handing it to another program which executes code on the script's behalf. This "other program" is called the interpreter or the engine and it itself is usually a native compiled program, hence it has to at some point give machine code to the CPU; everything does because that's the only way to actually get the computer to do anything. Simply put - a script is a set of instructions for a program to execute whereas a native binary is a set of instructions for your machine's CPU to execute.
The key here is that, since with scripting, you don't have to "compile to machine code," that's why when you write a script you don't have to "build" it; you can just feed it straight into the interpreter which speeds up the overhead of writing/testing code a bit. The downside is that the interpreter itself has overhead because many more steps are involved than simply the machine reading one compiled program.
If you want to see all this in action, get on Windows and write yourself a real basic javascript script. Now, download x64Dbg and open up `C:\Windows\System32\wscript.exe` in x64Dbg with commandline args to launch the javascript script you just wrote. You can actually trace the script's behavior in the wscript.exe binary and that's because the wscript.exe binary is following the instructions of the javascript file but the javascript file itself cannot at all tell the computer what to do directly. wscript.exe is an \__interpreter.