Techniques for detecting phosphorylation sites in proteins?
In principle X-ray crystallography or NMR could detect phosphorylation sites but they are much more complex and expensive techniques than mass spec. So for simply figuring out phosphorylation patterns in a protein is much easier using mass spec.

Detailed reasons:

For X-ray you need to crystallize the protein which is often very difficult/impossible and requires quite a lot of sample material. Afterwards you need a good X-ray source (ideally a synchrotron beamline) and record the scattering pattern over an extended range of angles (at least 180 degrees) before your crystal evaporates in the intense X-ray beam. Last but not least, you need additional chemical tricks, elaborate mathematical models and a large amount of computing power to compensate for the fact that in X-Ray crystallography you lose the phase information (because there are no suitable lenses for X-rays).

For NMR, you need large, very strong superconducting magnets, sophisticated radio transmitters and receivers, complicated math and computing power. However even if you have all that, you are still limited to very small proteins because otherwise the NMR spectrum is simply too complicated to be solved.

In contrast, for mass spec, you need a (highly sophisticated) spray gun, a moderate magnetic field and an electron multiplying detector. This is still a very sophisticated machine but much simpler compared to the above. In addition, data analysis is simpler than in the above cases.

Basically if you don't need to know the structural changes induced by phosphorylation (for which you would need to compare the structures of two crystals), you would stick to mass spec.