This is because you seem to want to rotate around a custom axis, rather than two axes at once.
One way to do this:
Align one of the object's local axes to the axis you wish to rotate around. If you don't want to rotate your actual mesh, see Set rotation values without applying them.
In this screenshot I've rotate a sphere so that it's local Z is aligned around the axis I wish to roll it along:
Add an empty and animate it spinning around the axis you aligned (so in this case I've animated it rotating 360° around the Z)
Add a copy rotation constraint to the sphere and select the empty as the target (note that you can press E while hovering over the object selection drop down to select an object in the 3D view). Then disable the axes you don't want to be copied and set the rotation to be "pasted" in the sphere's local space:
Animate the location of the sphere and you are good to go. Note that the sphere has no rotation keyframes, the rotation is done on the empty and copied with the constraint.
To explain what is happening when you rotate around two axes at once, hopefully this gif can make it clearer:
It's hard to explain :P
The gray Suzanne represents your sphere. Note that it rotates 360° around the Z and 360° around the X. Rotating around these axes will not make it rotate around a imaginary diagonal like you seem to expecting.