rustc_serialize was built for the compiler itself, and not really well-designed to be an external library. But it was Good Enough for a long time. Serde is the next-gen, built from the ground up to be awesome thing.
Well, it depends. Serde is still in active development, not at 1.0 yet. I don't think it's totally clear that at _this moment_, it's always better. It will be in the future, I'm just not sure that future is today.
Plus, there are other serialization libraries as well, and having the official Rust docs play favorites in the ecosystem is something we try to avoid.