Bueno, el código es correcto, ya el problema debe ser otra cosa. Quizá el valor de Fmodulo.Tdetallefactura['cantidad'] no sea correcto y delphi lo convierte en null al asignarlo. Prueba poniendo así:
Código Delphi
[-]
Fmodulo.Tproducto.FieldByName('Stock').AsInteger := Fmodulo.Tproducto.FieldByName('Stock').AsInteger + Fmodulo.Tdetallefactura.FieldByName('cantidad').AsInteger;
para discernir mejor porqué se da el error.
// Saludos