On a small project that utilizes a single DSL or a single library, sure, the difference is negligible.
On a large project with many DSLs and/or libraries (ie Rails) it's not easy to tell if a given thing is part of Ruby or part of the many-headed beast that is Rails. (or which of those heads provided it...)
A library works within the style and bounds of the base language.
A DSL intends to re-define the base language and invent new keywords and a unique control flow.
God bless generations of programmers doing the same thing over and over again.
It's funny how you can't even agree that there _might_ be languages that do allow you to create your own DSLs within the style of those languages; there _isn't_ a base language.