la funzione mail() di PHP funziona (scusa il gioco di parole) solo se nel server è installato un MTA che per fartela breve consente a quella macchina di inviare messaggi di posta, è probabile che nel primo server dove hai provato non sia installato per cui l'email non può essere inviata, altre ragioni potrebbero essere legate a Firewall che bloccano l'invio del messaggio.
Comunque se lo stesso codice funziona su una macchina e non su un altra le ragioni non sono da ricercare nel codice, che evidentemente funziona, ma sulla configurazione della macchina.