You are correct in your understanding of the term "embeddable". A programming language by itself isn't very useful. We want to embed it in larger programs like game engines, web servers, text editors, image processing software etc. to do useful things with it.
Lua is readily embeddable owing to it's minimal interface that it exposes via the C API.
The Lua interpreter is written in C, and is made available as a static library that can be used just like any other regular C library. It makes sense if you consider that Lua is simply a program that takes text (the Lua program) as input and produces side effects like output to a console, or generating a result from the computation.
Once the interpreter has been initialised, it runs in an infinite loop until it's done executing the program.
The embedding program may provide C functions to the interpreter that take Lua values and return Lua values. The interpreter knows that whenever a Lua program references a function named "foo", it is supposed to pause execution, call the c function bound with that name, and return the result produced by it to the Lua side again.
You might find this blog post useful if you're looking to embed Lua yourself: