Tu error es que ejecutas el javascript antes de que se haya cargado el DOM por completo.
Asi, var grados = document.getElementById("grados"), intenta obtener un objeto inexistente porque todavía no se ha cargado.
2 soluciones:
1. Obtener las variables dentro de la propia funcion.
Código
<script type="text/javascript"> var switchLetter = function() { var grados = document.getElementById("grados"); var conv = document.getElementById("opcion"); if (conv.options[conv.selectedIndex].value == 0) { // Aqui algo anda mal!! grados.innerHTML = "C"; } else { grados.innerHTML = "F"; } } </script>
2. Declarar la función (el script entero) antes de </body>. De esta manera, primero se cargaran los elementos y luego el script.
Saludos