il motivo è che dentro $_POST devi mettere i nomi dei campi del form

quindi
fwrite($file , $_POST['form.php']);

diventa
fwrite($file , $_POST['commento']);

puoi anche fare la cosa carina di mettere tutto in un unico file, ad esempio
codice:
<?php

if (isset($_POST['submit']) === true)
{
    $file = fopen('file1.txt', 'w'); 
    fwrite($file , $_POST['commento']); 
    fclose($file);
}

?>
<!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=iso-8859-1" />
<title>Documento senza titolo</title>
</head>

<body>
<form action="?">
<TEXTAREA cols=50 rows=4 WRAP="physical" name="commento"><?php echo isset($_POST['submit']) ? htmlentities($_POST['commento'], ENT_QUOTES) : ''; ?></textarea>
<INPUT type="submit" name="submit" value="Invia" />
</form>


</body>
</html>
I file che contengono codice php devono sempre finire per .php (la cosa si può cambiare ma per adesso non ci interessa), quindi non potrai rinominarlo in form.html (ma non penso ti interessi). Detto questo:
- una volta che il form deve puntare a "se stesso" visto che il codice php sta dentro lo stesso file la action può essere un generico ? oppure il nome del file stesso (form.php);
- il codice all'inizio non può più scrivere direttamente ma deve prima verificare se è stato inviato il form ... ci sono svariati modi per farlo, generalmente uso isset sul tasto submit del form ... isset restituisce true se $_POST['submit'] esiste altrimenti restituisce false ... in questo modo il codice che scrive il file parte solo se è stato inviato il form
- al submit ho dato l'attributo name per farlo comparire dentro $_POST
- dentro i tag textarea ho inserito un pezzetto di codice php che verifica se il form è stato inviato ed in caso inserisce il testo del commento stesso preoccupandosi di convertire i caratteri particolari nelle rispettive entità (ad esempio < diventa &gt ; oppure à diventa &agrave ; e via dicendo [ps: lo spazio prima del punto e virgola non c'è, serve solo per farlo vedere sul forum])

Lo so che la cosa probabilmente ti sembra estremamente complicato, ma ti ho voluto postare quest'esempio per avere qualcosina da studiacchiare

Qui dei link dove puoi trovare delle informazioni utili
www.php.net/fopen
www.php.net/fwrite
www.php.net/fread
www.php.net/feof
www.php.net/fclose
www.php.net/file_get_contents
www.php.net/isset
www.php.net/htmlentities

Alcuni sono usati, altri no ma te li ho messi come riferimento

Se vuoi vedere cosa c'è dentro l'array $_POST puoi usare questo codice (messo dentro i tag di php e soprattutto dopo che invii un form)
codice:
echo '<pre>';
var_dump($_POST);
echo '</pre>';
www.php.net/var_dump