Because that's what the standard says:
9.4.1 Static member functions [class.static.mfct]
2) [ Note: A static member function does not have a this pointer (9.3.2). —end note ] A static member
function shall not be virtual. There shall not be a static and a non-static member function with the
same name and the same parameter types (13.1). A static member function shall not be declared const,
volatile, or const volatile. (emphasis mine)
The reason for this is that a const (or volatile or virtual) static method wouldn't make sense (in the traditional sense, see below). For example, const implies you can't modify the object's members, but in the case of statics, there's no object to talk about.
You could argue that a const static could apply to other static members, but this option was regarded as pointless.