Why does the Lush interpreter use dynamic binding and not lexical scoping?
No particular reason other than history. The design of the interpreter is pre-Scheme/pre-CommonLisp, and it shows. We may provide support for lexically scoped variables in the future. But we will keep the ability to create dynamically bound variables because many parts of the library and the compiler rely on it.