Based on the code, it looks like time_scale is a multiplier that is applied to each of the _process calls, with it being multiplied by delta.
How are you tracking the FPS? Depending on how the FPS is tracked, it could be that it relies on the delta and because time_scale decreases the size of delta, it also reduce the reported FPS.