Transform.Translate is not slowing down...?

I have in my void function a while/for loop with a transform.translate method but When I’am changing the speed multiplier or adding Time.deltatime my character won’t slow down… Instead he will just cover a smaller distance. Can it only work in fixed update? Iam using btw Rigidbody.

    void moving(){

    for (int i = 0; i < 1000; i++)
        transform.Translate(Vector3.forward * speed * Time.deltaTime);
}
   void  fixedupdate(){ moving(); } //will work                                                                                          void eventriggerfunction(){moving(); } // won't work

If You are using Rigidbody simply use the ‘drag’ option:

Greater value gives more slow down.