Non conosco nei dettagli il modo in cui Firefox gestisce l'evento onblur, ma sembrerebbe che lo spostamento del focus all'altro elemento venga eseguito dopo l'esaurimento del codice javascript.
Quindi, nel caso specifico, lo spostamento del focus su "datafin" avviene dopo che è stato eseguito document.form1.dataini.focus(), rendendo in pratica inutile quest'ultima istruzione.
Questo problema è aggirabile con un brevissimo setTimeout che ritarda l'esecuzione del comando di quel poco che serve. Il tempo di attesa (delay) impostato a 0 vuol dire in realtà "nel più breve tempo possibile", che su Firefox equivale a 10ms.