funziona, funziona
probabilmente esegui l' istruzione quando nell' xhtml non e' ancora definito un elemento con id="msg"

var prova = "pippo";
window.onload=function(){document.getElementById(" msg").innerHTML= prova;}

per esempio qui lo esegui all' onload

oppure

<div id="msg"></div>
<script>
var prova = "pippo";
document.getElementById("msg").innerHTML= prova;
</script>

sicuramente quando l' elemento e' gia' stato definito

ciao