Why would Z/P cancellation with real part > 0 between the plant and the controller make the system unstable?
If it were possible to place a zero at EXACTLY the same location as a right half plane pole then the pole would be cancelled. However, exact placement is not achievable practically. The result is a pole and zero very close together on the positive real axis of the s-plane. Consequently, the root locus will have a branch on the positive real axis, going from the pole to the zero, which will give an unstable closed-loop. The zero, essentially, traps the pole in the right half plane.

If, instead, the zero were placed at an appropriate position on the real NEGATIVE axis, the root locus would have the capacity of moving the unstable pole into the left half plane and hence provide a stable closed loop.

Consider the very simple case of an open-loop with a single pole at s=1, i.e. an OLTF:

G(s) = 1/(s-1)

Placing a zero at, say, s=0.9 would give an OLTF:

G(s)=(s-0.9)/(s-1) and a CLTF = (s-0.9)/(2s-1.9), which is unstable.

However, placing a zero at s=-2 would give an OLTF:

G(s)=(s+2)/(s-1) and a CLTF = (s+2)/(2s+1) which has a stable closed-loop pole; ie, the unstable open loop pole at s=1 has been dragged into the left-hand plane by the zero, and now lies at s=-0.5