Lean is a dsl for mathematicians, not computer programmers.
It's not a DSL but has very powerful metaprogramming capabilities that make it great for creating DSLs
There's nothing the core language lacks compared to say Haskell
I also got the impression that they like sticking everything into Mathlib and not splitting off smaller packages that you could use as dependencies (besides Batteries).
Haven't tried it but there's this community-made REPL https://github.com/leanprover-community/repl