From the manual:
Play() will start animation with name animation, or play the default animation. The animation will be played abruptly without any blending.
Since you call this every frame, I'd suppose it will just show the first frame of the animation and then be stopped by the next animation.Play in the next Update. Try this:
if (!animation.isPlaying) {
animation.Play();
}
In general, I would suggest using Mechanim for character animations.