Pierwsze wydanie języka pojawiło się w roku 1993. Język utworzony przez członków Grupy technologii grafiki komputerowej (Tecgraf) na Papieskim Uniwersytecie Katolickim w Rio de Janeiro: Roberto Ierusalimschy, Luiz Henrique de Figueiredo i Waldemar Celes.
Główną przyczyną powstania języka to sytuacja w jakiej znajdowała się Brazylia w latach 1977-1992. Ograniczenia importu technologii wymusiły na rynku tworzenie rozwiązań od zera. Tecgraf tworzył w tym czasie rozwiązania informatyczne dla brazylijskich firm, takich jak Petrobras. W tym czasie w Tecgraf utworzono dwa języki: SOL (Simple Object Language) i DEL (Data-Entry Language). Języki te nie posiadały konstrukcji pozwalających na sterowanie wykonaniem programu. Dlatego zdecydowano się wykorzystać ówczesne rozwiązania i wiedzę by stworzyć nowy język programowania pozbawiony tych wad.
Pierwotna implementacja powstała bardzo szybko i nawet obecnie nie jest bardzo skomplikowana. Po skompilowaniu biblioteka zajmuje kilkanaście kilobajtów. Nazwa języka powstała jako przeciwieństwo do nazwy języka SOL, gdyż "sol" to po portugalsku Słońce, a "lua" to Księżyc. Z tego powodu logo języka to Księżyc z wyraźnie zaznaczoną orbitą okrążający Ziemię.
Konstruktory obiektów w Lua przypominają składnię opisu danych z języka SOL. Składnia struktur kontrolnych pochodzi z języka Modula, a wielokrotne przypisania i wielokrotne wartości zwracane z funkcji pochodzą z języka CLU. Obecnie języka oparty jest głównie na Scheme, dlatego Lua zalicza się do języków funkcyjnych (funkcje anonimowe, zakresy widoczności), mimo iż nie jest to wyraźnie widoczne. Wiele innych języków miało wpływ na kształt języka, można tu wymienić CLU, AWK, SNOBOL, Lisp oraz C++.
Wersja Lua pod Windows w postaci instalatora znajduje się pod adresem https://github.com/rjpcomputing/luaforwindows.
W systemach opartych o GNU/Linux można skompilować Lua ze źródeł, lub wykorzystać dostarczone pakiety. Tak jak w przypadku Ubuntu należy skorzystać z narzędzia apt-get
.
sudo apt-get install lua50
Główną, wzorcową implementacją języka jest ta, napisana przez twórców języka. Mimo to powstało wiele innych, zrealizowanych na różnych platformach.