Because RTTI means runtime overhead and that goes against C++'s principles.
Sometimes it is needed to make decisions on runtime instead of compile time, of course. Polymorphism is a fine example. But that is an explicit choice.
Making an implicit runtime check everytime you convert a pointer would hurt performance. This isn't some dumb Java.
RTTI is Evil(tm) [just as goto].RTTI isn't the devil, and C++ supports it.