El uso de uno u otro está controlado por la directiva short_open_tag en el php.ini, si esa directiva está en "on" puedes usar <? (tag de apertura corta encendida), si está en "off" no puedes usarla (no las reconoce). Es decir que si short_open_tag = On puedes usar las dos formas indistintamente.
Eso sí, es deseable que si vas a publicar un código PHP lo hagas usando el tag largo <?php porque no todos los servidores tienen short_open_tag = On y de esa forma te aseguras que tu código será reconocido siempre en cualquier parte.
La diferencia entre uno y otro es ninguna, es solo una cuestión de comodidad.