What is a short?
A short is a low voltage even under high current.
So,
You just need a resistance detector. Which works for any voltage and current, including zero.
Umm, okay. Good luck with that...
Suppose we apply some bias. A lot of bias. A hundred amperes. That should make a pretty strong signal, eh?
But isn't that dangerous? Heck no -- the magic figure is around 10 microseconds. An overload condition (full gate voltage with the drain at full rated voltage) dissipates a lot of power, which heats up the silicon right quick, but heat is a slow thing, and there's relatively a lot of time available to detect something going wrong. So don't worry about actual shoot-through too much. If it's happening continuously, your driver is shit. If it happens once in a while, well... maybe you've got RFI problems or something, but it's not going to explode. If it happens for more than 10us continuous, yeah, you've probably got a short circuit somewhere, which should be dealt with.
So how should this be detected? Use a desat detector. This works better with IGBTs, but is applicable to MOSFETs all the same. I've designed and built MOSFET inverters in the 5kW, 500kHz range, that detect a "desat" condition within two microseconds. The difference between IGBTs and MOSFETs is mainly that you set the threshold higher for MOSFETs, at least for the high voltage devices.
IGBTs exhibit a constant current characteristic at much lower voltages than MOSFETs do, so they normally saturate at a low voltage (even the 4kV devices drop hardly 5V), whereas MOSFETs might drop 50V in normal operation (but >100V in fault, so it's not hard to tell or anything). At low voltages, you're looking at, like, under a volt for normal operation, but a substantial fraction of VCC under fault, so it's still easily done.
Tim