It is a scripting language that extends CSS, then you compile it into regular CSS. Each Preprocessor has its own language that can be compiled into regular CSS. It basically adds on to CSS, letting you do a few additional things in CSS.
Using a CSS Preprocessor make it easier for browsers to read the CSS because it makes sure all the information is there. It helps with catching mistakes and saves time because it can be reusable. It also helps with changing things and making everything consistent. Using one also make the CSS cleaner looking and easier to read. Because it is reusable it can be shared as well.
It can make debugging harder because it is compiled means the error line is irrelevant. Depending on how much is being compiled it can take a long time. They can also create HUGE CSS file when they are done compiling. Overall, you are giving up a lot of power and control to the CSS Preprocessor.
As expected, I see a lot of front-end jobs asking for people with experience with Scss and SASS. Honestly from my brief look, I only see them asking for SASS, not of the other preprocessors. There are also many that just say CSS, nothing about Preprocessor. Almost all from-end type jobs ask for SASS or just plain CSS. Sorry I didn’t count.