Lua is a lightweight scripting language commonly used for games due to its flexibility, speed, and ease of embedding into C/C++ applications. It allows game logic and behaviors to be defined through scripts that can be changed in real-time without recompiling the core engine. Lua integrates with game engines through a C API that exposes core functions and allows scripts to interface with the game world. While Lua has advantages like easy distribution of content and secure execution, it also has disadvantages like low-level APIs that can make debugging difficult.