P-GPS is the standard/default flight mode, in this mode you can control the drone manually with the remote as in DJI Fly. The remote sends commands straight to the drone.
Joystick mode is when the drone can be controlled by a third party app like Litchi. In this mode, Litchi sends required velocities to the drone. Joystick mode is used for most Litchi modes (for DJI Fly drones) other than when you fly manually. We can give you a simulated manual control with Joystick mode, where Litchi calculates and sends required velocities based on the remote controller joystick positions, but that is not true manual control, the drone won’t behave the same as if it is in P-GPS mode. In addition it adds some latency as the commands go from RC → DJI SDK → Litchi → DJI SDK → RC → Drone rather than just RC → Drone