Is Bjarne really suggesting we shouldn't ever discuss anything?
To me it just means all programming languages have their flaws that people are going to bitch about. If no one is bitching about language X then it is because no one is using it and not because it is a good language.
So to answer "C++ Sucks" - Why?, all languages suck in some regard.
Both the popularity of C++ and its complexity and other supposed flaws are the direct result of its goals, which it achieved and over-achieved despite zero budget and many competing interests. It could have been much simpler, but nobody would use it (see D).
I don't think comparison with Java makes any sense, to be honest. Java is just too fundamentally different (despite the occasional attempts to stretch it into C++'s domain -- it fails miserably in practice)
C++'s goals evolved slightly over time. It started as a combination of three things:
1. Simula-style OOP (note, not Smalltalk-style like in Java)
2. Stepanov's generic programming
3. A better (safer, faster, and more managable) C
Today it is the lightweight abstraction programming language for software infrastructure and resource-constrained applications. Its key strengths are integrated resource management and error handling and extensive strong static typing.
Some C++ abstractions add overhead: think about templates. The compiler has to generate the same code for every type (or set of types in the case of templates with multiple type parameters) that the template is used for, and that's only in a single source file. If the compiler doesn't optimise it away, the exact same function could appear in each file, leading to a larger executable, which could decrease performance.