It is playing the animation that you created. I would guess that you expected it to interpret the movement you recorded a little differently though.
It would appear you want the arm to raise and then rotate a little to wave the hand. the problem is you keyframed the rotation with the arm pointing downwards, then you moved it up and rotated it and keyframed, blender then gradually rotates from the lower position to the upper position, the "waving" rotation is then merged into the lifting the arm movement.
To fix this you need more keyframes. You want a keyframe of the arm pointing down, then a keyframe of the arm pointing up, then add keyframes for the rotations to make the wave.
If you want the arm to start rotating as it is raised then you will need a few more keyframes to define the arm raising so that it is in the right position as it raises.
Below is the f-curves for your animation. The red curve is the x-rotation for the arm going down and raising up. The green curve is for the y-rotation and the blue is the z-rotation intended for the arm rotating to give a wave, you can see that the y and z curve begin rotating as the arm raises upwards. You only want the y and z to start rotating around the time the x rotation is in it's highest position.
