It looks like DDG’s crawler (and search query parser) applies English (or ‘generic’, which probably = English for any language in the Latin alphabet) rules for separating words. This doesn’t work for some languages, in my case German.
In English, hyphens usually go between two separate words. In German they’re used to make single compound words easier to read. E.g. in German ‘Straßenverkehrsordnung’ is exactly the same word as ‘Straßenverkehrs-Ordnung’, but DuckDuckGo gives different results for each. The results for the former spelling are much more relevant because it’s more common, but the hyphenated form is just as correct.