Moving D into GCC proper is problematic for no other reason than that D is a moving target. The authors are not formally standardizing the language, they abandon versions of it, and there's no guarantee that tomorrow's D will be anything like today's.
Plus, the D standard library is total crap. It's so much crap that they wrote a completely new one. Which is also total crap. So they're contemplating a third.
There's a ton of great ideas in D but nobody involved in that project is really fit to be in charge of a language standard. Either D needs to be taken off Digital Mars' hands or a new very D-like language needs to be spec'd out by somebody else.
(On a personal taste note, the fact that D is not backwards compatible with C is very annoying. There is a ridiculously large body of C code and C libraries out there for which the D facility for generating "bindings" does not work well, such as libraries that make heavy use of macro tricks which are common given C's weaknesses. In all honesty, these days, we're almost in the same boat with C++ given its ubiquity in so many areas of the industry. Whatever minor improvements a language gets by dropping C compatibility are simply not worth the loss. Removing the C preprocessor isn't necessary because its existence does not mandate its use in new code, and changing where the * in pointer type declarations binds is nice but such an incredibly minor thing... the break in compatibility is measurably harmful but not notably helpful.)