According to an answer in the Unity forum here is the explanation.
SV_POSITION in pixel shader is available in DirectX 10 and above. That means #pragma target 4.0 and above in Unity. The DirectX 9 #pragma target 3.0 version of this semantic is called VPOS, but I’m not sure if Unity supports it.
You can alternatively compute this value in vertex shader and pass it to pixel shader yourself. There is even a builtin function for that : ComputeScreenPos