move_and_slide() was meant to be called continuously as it uses implied delta time equal to physics simulation step time. When you call it from _physics_process() callback it works because it gets called each frame. However if you put it into animation track as a "call method" key it'll only be called once, executing only a single frame worth of movement, unless you have a bunch of consecutive keys, thus calling it every frame.
What you could do is to maintain a flag variable that determines whether move_and_slide() gets called from the _physics_process() callback, then just animate that flag to toggle the movement.