Because writing good debuggers is unglamorous hard work.
Actually, I think the VS C++ debugger is only decent - not great, just decent. I prefer the Borland debugger kernel, seen these days in Embarcadero Delphi and C++ Builder, the CPU view in particular. Although if you're working with mixed native and .NET code, it's quite good.
VS's ability to comprehend C++ code and provide meaningful code completion, follow symbol references, etc. even when it isn't able to compile the C++ is excellent, however.