Non so se una stringa formata da solo un numero sia un nome valido per un campo. Mettici una lettera davanti.

Inoltre l'evento blur sul terzo campo probabilmente nonscatta mai: prova con l'evento onchange su uno (o ambedue) gli altri:
codice:
<script language="JavaScript">
<!--
function diff() {
var val1 = parseFlaot(document.AIR.c1.value);
var val2 = parseFlaot(document.AIR.c2.value);

document.AIR.c3.value = val1 - val2;

}
//-->
</script>
<head>
<body>
<form name="AIR">
<input type="text" name="c1" onchange="diff();">
<input type="text" name="c2" onchange="diff();">
<input type="text" name="c3" readonly>
</form>
Nota: se i numeri devono essere interi, usa parseInt() al posto di parseFloat();


Ciao
Michele