As Veredomon already explained, German does have ways to express the progressive aspect, and even more than one. The real difference is that English, like the Celtic languages, has the unusual feature that marking the progressive aspect is not optional. Here is why it makes sense that German hasn't developed obligatory progressive marking (yet?).
Many languages develop a way to express the progressive aspect because often you want to stress that something is going on right now. Once there is an established way of expressing that, people tend to generalise it further and further for much the same reason that people say brilliant or tremendous instead of just plain good. Example: "I promise I will pay tomorrow. I am not just promising it, the paying tomorrow is such an irrevocable fact that one could say I am practically paying right now. (Though of course I can't because I can't access my money yet.) You could say I am paying, though not right now but tomorrow. That's it: I am paying tomorrow!"
Among other ways of marking the progressive aspect, German and Dutch have a construction that is similar to one that may be the origin of the English progressive as there are some similar examples in Old English. (Old English didn't have a progressive like modern English does, but a few sentences have survived that look suspiciously like the Dutch/English progressive. I can't find the source right now, but I think one example was, in literal translation, "[be] on the hunting".)
- I am cooking.
- Ik ben aan het koken.
- Ich bin am [= an dem] kochen.
So literally, in Dutch and German you say "I am at the cooking". Even for the literal translation I used the gerund/present participle in English instead of the Dutch/German infinitive because in each case that's how the language forms nouns from verbs.
The Dutch and German constructions are a bit wordy, but straightforward enough. I believe the main thing that prevents them from being used so often that they become obligatory where applicable is that they don't generalise well to more complicated cases:
- I am cooking the food.
- Ik ben het eten aan het koken.
- ? Ich bin das Essen am kochen.
This is where it gets weird, because literally, in Dutch and German you say "I am the food at the cooking". (Since het eten / das Essen is literally the eating, we could even translate this as "I am the eating at the cooking".) In Dutch this is already firmly established. In German it's definitely colloquial, and even when it is used colloquially, it indicates that the speaker comes from the Ruhr district, a large and populous area near the Dutch border.
It's unlikely that the progressive will become obligatory in Dutch and German before it is simplified a lot. There is already a construction that is structurally essentially the same as the English progressive:
- I am someplace to cook.
- Ik ben koken.
- Ich bin kochen.
If we consider cases such as "I am skiing" / "I am someplace to ski" or "I am hunting" / "I am someplace to hunt", it appears that semantically this second construction is close enough to the progressive that it might acquire a progressive meaning. But for now the two are held separate, and the simple construction is currently blocking the simplification of the progressive by simply dropping aan het / am. I.e. you can't simplify the progressive that way because if you do you are not extending a language so as to make new sequences of words grammatical, but you are saying something that already has a different meaning. By the way, this construction may well be at the origin of the strange object placement in the Dutch (and dialectal German) progressive:
- I am someplace to cook the food.
- Ik ben het eten koken.
- Ich bin das Essen kochen.
Now that this parallelism exists, it is natural to interpret aan het / am as a progressive marker. Which interpretation of course makes it even less likely to be dropped when expressing a progressive.
Due to these problems, the most common way of expressing the progressive aspect in Dutch and German is still by adding adverbs such as nu / gerade (right now):
- I am cooking the food.
- Ik kook nu het eten.
- Ich koche gerade das Essen.
This way of marking the progressive aspect is very unlikely to become obligatory because (to my knowledge) there is no precedent of obligatory adverbs in Germanic languages.