What is the use case difference/benefit of using a Gray code vs. Incremental rotary encoder
A Gray code encoder is an ABSOLUTE encoder.  You turn your system on, do a reading, and you know the position of what you're trying to measure to within the resolution of the encoder.  For these encoders, you often need a digital I/O for every bit of resolution of the encoder.

In contrast, an incremental encoder is a RELATIVE encoder.  You turn the system on, it starts at zero, or some other predetermined number, and accurately reports RELATIVE position from the starting position.  If you want to know absolute position, you need to go through some sort of zeroing process, often involving slow motion to some sort of fixed location switch.  For these encoders, you only need one or two bits of I/O (usually) to handle the data.

As for Gray code vs binary code (another option for absolute encoder that you didn't ask about), in a Gray code only one bit at a time changes, making handling of the signals more bulletproof.