Actually FORTH despite being so low level lends itself perfectly for writing complex software in it because it allows for a great bottom up style programming in a similar fashion as LISP does. You would start your application (or game) with higher level words abstracting all machine details and then write your game engine on top. Then you would go on defining a set of words allowing you to define levels and characters easily on top of the engine. So well written FORTH applications were just layers and layers of specialized DSLs working together to solve complex problems. With the right abstractions, the code was easy to read in the end and also easy to port across different architectures.
Unlike LISP, however, FORTH did not come with memory management or a complex run time. So it was way better suited for the small 8-bit micros back in the 80s. One of the British micros even came with a FORTH runtime instead of BASIC: https://en.wikipedia.org/wiki/Jupiter_Ace. But, unfortunately, BASIC turned out to be much more popular, although usually being too slow and inflexible.
I remember BASIC 2.0 -- which shipped with the C64 -- not providing any kind of abstractions around the particular hardware features the machine provided (like sound, graphics and sprites). It was very frustrating especially for beginners that just wanted to create their own little games. But that was almost impossible without embedded machine codes and the resulting BASIC programs much harder to read and understand than FORTH code.
I remember trying this a handful of times with code examples I found in magazines or books, using arcane strings of seemingly arbitrary numbers manipulated by POKE and PEEK commands. I felt very limited in what I could do considering the amount of time required, and like I was doing data entry instead of learning something I could use in the future. So I gave up on that.
It's hard when you're the only person you know interested in coding and there's no internet.
It was the 8 bits that made it known as an interpreted language.
And hey, considerably more and even larger games have been written in assembly, compared to which Forth is definitely high level (arguably even to other programming languages, but let's not get into that unless Don Hopkins joins this thread)
And Forths and BASICs can be fast or slow, really depends how much time is spent optimising.