Fragment shader distortion suffers from another issue: heavy distortions require higher resolutions and (depending on distortion type) higher field of view. Even more radical distortions would require cubemaps of undistorted frames to handle fragmens from behind the camera.
This answer suggests some other ideas on implementing lens distortion: https://stackoverflow.com/a/44492971