There are 2 mains reasons
1. Shift is Pending
A shift needs to in booked state and pending shifts cannot be invoiced. Read pending reasons here
2. Price is missing for given Shift
A shift will be marked as red in the client report if no price is found for the selected Price Book. This can happen if your price is not available for the given time period. For example, the shift finishes at 10pm but there is no price specified for Monday to Friday for that time. Fixing Pricebook and prices will fix this issue.
Note! Shift can also be red if there is nothing to invoice i.e. hours in shift is 0 as well as cost along with mileage.