It is not necessary to compile a program, in the general case, before executing it.
Many programming languages parse their program to an AST then walk that AST interpretting as they go. But for BASIC you can parse/execute statement by statement - no need to parse the whole program ahead of time, and certainly zero need to compile to either machine code or any internal representation.
Remember at the time we're talking about 64k was a lot of RAM. Some machines had less.
The parsing, even if line by line as necessary, is still compiling.