A few years ago, there would be reasons to use DTD over XML Schema (it was more common or better supported by XML tools). Today, however, I see no reason to not use XML Schema instead of DTD : XML Schema is much more powerful.
However, XML Schema is far from being perfect (just try to read the spec or a book on XML Schema...) and many alternatives have been developed since then (Schematron, Examplotron, RelaxNG). These may have technical advantages over XML Schema, but XML Schema is so much more pervasive today that I see very few cases where an alternative would make sense.