Non funziona perché nel momento in cui viene eseguito lo script, il div con id prova non è stato ancora caricato dal browser.
Puoi inserire quel codice nell'evento onload:
Codice:
onload = function () {
var div = document.getElementById("prova");
div.innerHTML = div.innerHTML.replace(/</g, "<").replace(/>/g, ">");
};
Oppure subito dopo il div:
Codice HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento senza titolo</title>
</head>
<body>
<div id="prova"><img src="#" /></div>
<script type="text/javascript">
var div = document.getElementById("prova");
div.innerHTML = div.innerHTML.replace(/</g, "<").replace(/>/g, ">");
</script>
</body>
</html>