I really enjoyed John Cook's talk on Why People Use R. The premise: to programmers, R is slow and messy. Yet, to statisticians, It Just Works. And works so well, they have no choice but to make it popular. I'm not a statistician, and so have no need or appreciate for R. But, I've worked with another DSL that that was plenty ugly yet and mighty popular. It's none other than PHP.
While PHP has spent years of effort to make itself into a legitimate general purpose language (it's even got anonymous functions now!), its roots very much match those of R. PHP started its life as a DSL for building web pages (back when the notion of a web application was in its infancy). It was a slow (compared to C, anyway) and clunky language. Like R, it contained shortcuts that users of the language loved, like having nl2br() as a built in primitive, or the use of register_globals, but were far from smart programming language decisions. You didn't learn PHP from the spec, you learned it from tutorials and copying and pasting code. Sure, PHP had some good ideas (like tightly coupling the language to a database), but it also contained plenty of duds.
So, Just Worksness trumps language beauty when it comes to DSLs. That's certainly a key point to consider when designing a DSL. One that is far from obvious to programmers.
It's also instructive to consider a language like Scheme, who is nearly the opposite of R in every way. You can, in fact, learn Scheme by printing out the spec and reading reading it (at least, until R5RS you could). But why would you want to bother? Scheme, out of the box, does almost nothing. Yet, in terms of elegance for building abstractions, Scheme brings plenty to the table. Clearly language elegance of specific functionality is preferred.
In reality, people don't download a pure version of Scheme. They use a system like Racket that not only provide the basic core, but also provide the libraries to do interesting things. Still, I think this is one more explanation as to why Scheme isn't popular. With no specialized niche to plant the seed (another example: Perl for text processing), there isn't a base of users clamoring for the language.
And you know, I'm OK with that.