Granted, DSLs are easily expressible in Lisp, but pretty much anything is expressible in Lisp. If you want some sort of guarantee that your DSL is limited in some way, you would need to write additional Lisp code to enforce those constraints. But if the constraints map nicely to the constraints in a more limited language, you get the constraints effectively for free by choosing the limited language, while trading off the power of Lisp.
The prevalence of DSLs in Lisp code poses an interesting counterpoint to Greenspun's Tenth Rule: Any sufficiently complicated Lisp program contains an ad-hoc, informally specified subset of a declarative language. :)
If and only if the constraints map nicely. Otherwise you're out of luck.
DrScheme's language levels, where constrained languages help beginners avoid the strange error messages one gets by accidentally invoking an advanced language feature, are unique, as far as I know. Correct me if a learning tool for any non-Lisp language has succeeded in implementing the same sort of thing. Otherwise, I think it's obvious that if you have specific desired constraints for a limited language, some kind of Lisp is your best bet.
The prevalence of DSLs in Lisp code poses an interesting counterpoint to Greenspun's Tenth Rule: Any sufficiently complicated Lisp program contains an ad-hoc, informally specified subset of a declarative language. :)