How to animate object rotation on a single local axis when local and global axis not aligned?
You can simply use the Copy Rotation contraint:


Create a new empty;
Select your object, switch to Constraints tab in Properties Editor, add a Copy Rotation constraint, set the empty as Target, toggle Offset, set Local Space as the owner space (current object).
Then you control the rotation by rotating the empty.






Tip: For quick constraint creation, you can also first select the empty, then holding Shift to select your target object, then ShiftCtrlC -> Copy Rotation.