Physics based movement code, including rigidBody.MovePosition() needs to go in the FixedUpdate().
Update() is called in every frame but it is not called on a regular timeline. If you code takes longer there will be fewer updates.
FixedUpdate() is called on a regular timeline and has the same length between executions. Fixed update will always have the same Time.deltatime