Hola otra vez:
El error tuyo es no poner "value":
document.miformulario.texto
.value .split(malaspalabras[i]).length
- 1 ;
El tuyo lo marqué en rojo y el mío en azul.
Luego procura acordarte de lo que te he dicho antes...
ejmplo:
var malaspalabreas = [" pis ", " caca "];
... sobre los espacios en blanco.
Saludos