stai mischiando le regexp posix con le pcre.

Fai semplicemente una cosa cosi':
Codice PHP:
echo  preg_replace('/\\d{1,2}:\\d{1,2}/','<font color="green">\\0</font>','Alle ore 10:20 xxxx arriva a milano con un ritardo di 3:00 ore');