The boring and probably most common reason for a unwanted tumble would be leak or otherwise uncommanded operation of the control system, noting this will generally end with fuel exhaustion or other failure of the system AND a high tumble rate (example Peregrine).
A related failure mode is where a sub system fails to operate (stuck valves or similar) removing one axis of control, in many cases this can be worked around by rotating the craft such that a working system is aligned with the needed axis but this can be complex to sequence and is possibly for a poorly structured set of commands to produce a tumble, further recovery from this tumble will may be hindered if the onboard fail safe recovery is trying to operate the failed axis to regain communication.
Where mechanical elements like propellant valves in a thruster are involved there will not be a binary 100% thrust for X time then stop result, instead some form of ramp up and taper off. This can change as platform ages and parts wear or tank pressures fall possibly resulting in oscillations around the desired pointing and higher consumable consumption.
Many craft do fine and ongoing control with reaction/momentum wheels, these however need to be unloaded/de-saturated periodically with a thruster based system, so a craft with working wheels but wonky thrusters may end up with periods of correct operation followed by tumbles that may or may not be recoverable.
As with Peregrine it is often possible for other parts of the system to compensate for a time until some resource or capability is consumed and then sudden obvious failure occurs. This is not an engineering problem but a business decision in how the owner communicates with public/customers about the issue. With the various issues on Hubble the information was public so the various failures of redundant but interlinked systems are known and understood, where a private company might be more opaque and seemingly 'better'.
Other factors that can complicate vehicle stability: