O irmão prodígio esqueceu de tirar a var totalGastoDeEventos de dentro do While, então toda vez que era colocado uma nova informação ele resetava a resposta anterior.
<meta charset="UTF-8">
<script>
function pulaLinha() {
document.write("<br>");
}
function mostra(frase) {
document.write(frase);
pulaLinha();
}
var totalDeEventos = parseInt(prompt("Informe o total de eventos"));
var totalGastoComEventos = 0;
var contador = 1;
while(contador <= totalDeEventos) {
var gasto = parseFloat(prompt("Informe total gasto com evento"));
totalGastoComEventos = totalGastoComEventos + gasto;
contador++;
}
var media = totalGastoComEventos / totalDeEventos;
mostra("A média de gastos é " + media);
</script>