Why do we need something to preprocess CSS? Here are a few simple reasons:
There are no variables in CSS
When styling nested elements, your code will not be DRY, that is, you will type a lot of classes and/or IDs repeatedly
It isn't convenient to re-use code in CSS, so you end up with code that isn't DRY
There is no logic at all to CSS
Preprocessors allow us to manipulate color relationships in a dynamic way rather than statically assigning all color values; this is especially powerful when coupled with the ability to use variables
These are broad explanations. This appendix, and essentially this whole book should give you lots of detailed examples of when these are useful.