At 0 speed and 0 torque, there is no movement.
Correct, but, consider what would happen if the winch was not perfectly level when it was installed. In that case, the object would pull on the winch, like a car trying to roll downhill if left in neutral.
If your winch were setup to only use a proportional gain, then the position would "droop" from the ideal/setpoint until such a position was reached that the object's torque matched the torque provided by the proportional controller's output.
Even if your winch were perfectly level before installation, the system will have friction, and that friction will prevent a purely proportional controller from ever achieving the desired setpoint. At some point, the proportional gain simply won't result in enough torque to overcome the system friction and get to target.
You could increase the proportional gain to push the system closer to target, but this is a bad idea because it's going to make your system way more sensitive to large steps in command position, to the point that you could drive your system unstable.
Besides stability issues, the integral term automatically pushes the system for you - an integral term "watches" the error. If it "looks" at error and sees you're not in position, then it automatically pushes a little harder.
Once the integral term sees you're in position, it stops increasing the applied force. Whatever it had been applying is retained, and this is what makes up for position droop.
It is possible for an integral term to send you into instability, but that would only happen if the integral gain were too large for your system and you can get the same instability from a strictly proportional controller if the proportional gain is too high.
If you're struggling to tune the system, then I would refer you to the Ziegler-Nichols method. From that page,
This tuning rule is meant to give PID loops best disturbance rejection.
It yields an aggressive gain and overshoot – some applications wish to instead minimize or eliminate overshoot, and for these this method is inappropriate. In this case, the equations from the row labelled 'no overshoot' can be used to compute appropriate controller gains.
If that's not quite what you're looking for, then I would highly recommend some form of model-based control, like a feed-forward controller. You can use both feed-forward and PID (and I have, to great success!)
Feed-forward control allows you to exploit your knowledge of the system to get better performance by being proactive, rather than waiting for setpoint errors to appear as in a reactive PID controller. For example, if you know you want to accelerate your 10 kg load at 1 m/s^2, then you already know the winch should output (10*1) = 10 N of force. You don't need to wait for the position errors to appear before applying that 10 N of force.
Once you're using feed-forward, you apply PID control to whatever error is left, and in this way your PID controller is only really making up for modeling errors. The PID controller will make up for any friction you failed to account for, any errors in your load mass (e.g., if it's 9 kg instead of 10 kg), etc. Your PID controller is no longer doing the "heavy lifting" of getting the bulk positioning response, so it should be much less sensitive to large step changes. Since it's only performing a positioning error adjustment, you can tune the PID controller much more aggressively than if it were trying to also perform the bulk motion.