No exactamente, porque los campos llegan aunque no los invoques en el UPDATE, ya que forman parte de la estructura de la tabla. En esencia, ese modelo podría ejecutarse si, por ejemplo, NEW.dinero fuese igual a cero y OLD.dinero no, cosa que puede darse si simplemente el UPDATE que ejecutes no incluye una cantidad nueva para el campo....
Recuerda que en un TRIGGER, el registro entrante es una estructura completa, con todos sus campos, aún aquellos que no uses para enviar valores, porque lo que hace MySQL es crear un registro entero y luego asignar sólo los campos indicados en la sentencia... pero los demás siguen existiendo.
¿Se entiende la idea?
Probablemente algo parecido a esto funcione mejor: