They provide an impedance match to a wide variety of information that would otherwise have to be expressed in tons of high maintenance, error prone, boilerplate.
I've been using a pascal like DSL since the 1980s.
1. I suspect most CS course emphasize compiler writing as a central course that separates the dunces from the stars.
2. A lot of time in these courses is spent on parsing, and that's the one aspect everyone can learn. For many people, that's all they will ever remember. Even in parsing, there are some decently difficult algorithms, whose ancient inventors are elevated to hero status. That Knuth was really something with his LR parsing we still use.
3. Parsing is portable to non-compiler settings, like data serialization and config. If you teach young people all this parsing, of course they are eager to apply their skills. All the more if you have highlighted parsing to them as something clever.
4. Parsing creates fun tinkering work for the implementor. E.g. Instead of learning someone's API for serializing and deserializing data, you're doing it from scratch which is way more fun. The scanning and parsing initiative generates activity which feels like it is work that advances the surrounding project. The stuff is nicely testable in isolation. When bugs occur, they are reproducible. You can practice TDD and whatever, and stick that in your status report.
5. People love to work on their pet project to extend it. Syntax is one of the most easily extensible types of software, particularly if you're using tools. Adding a few new phrase structure is easier than, say, adding new UI to a GUI application. Especially if it's just sugar which transforms into something that can be produced by existing phrase structure. You can easily handle all requests for new features in the syntax, and feel important as a result. New syntax can be buggy, without causing harm; it's hard to step into new syntax: someone has to write a cryptic incantation into some file. Not just click on some UI widgets in the wrong way or whatever.
6. To people who have not been involved in languages a lot, parsing seems mystical: it has super-powers. The problem of communicating with the machine can be improved, if we just design the right clump of characters. Semantics? Oh, that is just fluff we can back-fill once we have the perfect syntax; almost an afterthought. Look at the users? Lisp can express anything; programs can even invent new syntax and semantics. Everyone uses Javascript or Python though where the syntax is prescribed by the priesthood. It's as if .. people like being prescribed to?
7. Syntax lets you dictate to other people how they should write. If everyone adopts your syntax, they are all playing with your idea every time they do anything with that syntax. Your idea! You genius, you! Long after you left that company, your syntax lingers on, with a few changes done by others, but the core is all you. Look, they rewrote in Java, but it's still your idea since it parses exactly the same.
8. Mathematics! Many people's first and main contact with elaborate formal syntax is mathematics. In mathematics you first encounter the (legitimate) idea that notation assists reasoning. Mathematical notations are designed to mirror the ideas that they represent in such ways that manipulating the formulas in certain ways corresponds to correct manipulation of the ideas. A good chunk of "syntax worship" has a root cause in math, I suspect.