Historical reasons and Linus' personal animosity towards C++, probably related to the former. When Linux was started C++ wasn't that mature, compilers buggy and the UNIX tradition has always been K&R C.
I've never spoken to Linus, but spent some time trying to guess at this animosity... and he may have a point. One of the problems with a large distributed project like Linux is making sure that lots of folks are able to contribute. C++ as a language could work against that because it *is* a very complicated tool and can be used so many different ways that one programmer's C++ may be almost unrecognizable to another. That's something Linus probably can't afford.
OTOH, a focused team with experienced engineers and the ability to adhere to coding standards can mandate certain restrictions in the C++ they write and do good work. Again, clang and LLVM are a positive example. Google has 100 million lines of C++, so it seems they've found a way to tame the complexity beast too.
Where I work, everything from the reset handler on up is written in C++ 11. All that stuff runs on a Cortex-M0, and is a pleasure to work with.