Because those are javascript primitive types, which json is built around in the first place. Date is not a javascript primitive, and is therefore not included.
If we need to follow that logic (to include useful non-primitives) we would end up with a clusterfuck of a spec that noone would want to implement.
But why stop at dates? What about all the other useful things we could put in, DOM elements and and sets and synchronization clocks...