document.write sovrascrive il documento, probabilmente dopo il primo non ritrova più lo stesso script presente nel document fino all'attimo prima e non sa che caspita è la funzione numeri ... ma in generale sembra quasi tu stia aspettando che quel numero++ faccia qualcosa, mentre essendo una variabile locale non farà molto se non al massimo stampare sempre 0 (o mostrarlo in alert)
codice:
function numeri(){
if(!numeri.numero)
numeri.numero = 0;
alert(numeri.numero++);
setTimeout(numeri, 5000);
}
// oppure
var numeri = setInterval(function(){
if(!numeri.numero)
numeri.numero = 0;
alert(numeri.numero++);
}, 5000);