The subjunctive does not express or accompany uncertainty
This is a common myth is perpetuated by teachers, grammar books, etc. calling the subjunctive Möglichkeitsform or similar. I will try to briefly explain why this is a myth, where it comes from, and what grain of truth it holds.
What the subjunctive does is mainly this:
The subjunctive I expresses indirect speech and similar. Roughly, whenever you could put something into quotes, you can instead use the subjunctive I.
The subjunctive II expresses that something is counterfactual, usually a part of a conditional statement (irrealis).
Both subjunctives are used in fixed and somewhat archaic expressions, most prominently the subjunctive II for politeness and the subjunctive I for “imperatives to the third person”.
For the modal verbs können, sollen, dürfen, müssen, and mögen, the subjunctive leads to weird and potentially complete changes of meaning, sometimes adding the notion of uncertainty. For example, dürfen in the indicative mood means to be allowed to, but in the subjuntive II mood, it can also mean to probably be.
In none of these cases does the subjunctive simply add the notion of uncertainty. In Case 2 it goes further and expresses impossibility instead of possibility; in Case 4, it does something on top of it; in Cases 1 and 3, it does something different altogether.
However, in most applications whatever is described is somehow vaguely associated with uncertainty: For example, we usually are not certain about reported statements, and if we have to politely ask for something, it may or may not happen. But then again, this also holds for the imperative or the future tense and nobody claims that those express uncertainty.
Belles Lettres treated this subject more extensively (in German), but somewhat prescriptively.
How to express uncertainty
The best and most clear way to express uncertainty in German are adverbs like vielleicht, möglicherweise, or wahrscheinlich (without any particular mood). Thus your second example is correct:
Vielleicht hatte sie einen schlechten Tag.
You can also use modal verbs like sollen, dürfen, and müssen in the subjunctive II mood and können in all moods, but beware of other potential meanings.