Xpath is a functional language (there is no built-in concept of state or volatile storage). CSS selectors are expression matching constructs that are convenient for entities that can be expressed with a DOM L1 1.0 interface. Xpath can do more but it's generally more than needed for cases where CSS selectors might be sufficient.
In other words, it's about the same answers as "why might a hammer be better than a nail gun for hanging a variety of paintings."