Unmoral describes something that simply falls outside moral consideration altogether, neither right nor wrong. Immoral describes something that is actively wrong, going against accepted standards of right and wrong. A rock has no morality and so is unmoral; cheating on an exam breaks a moral standard and so is immoral.
The core difference
Unmoral means outside moral judgement entirely; immoral means judged and found wrong by moral standards.
- unmoral — not applicable for moral consideration: The workings of a calculator are unmoral, since a machine has no concept of right or wrong.
- immoral — going against accepted standards of right and wrong: Most people consider cheating on an exam immoral.
How to tell them apart
The prefixes make the difference easy to remember once you separate them. Immoral uses "im-", meaning "not", attached directly to "moral" — so something immoral fails a moral standard it is expected to meet, like a person choosing to lie or cheat. Unmoral instead describes something that stands outside the whole system of moral judgement, such as a natural process or an object that cannot be said to have chosen anything at all.
A quick test: ask whether the thing could plausibly be praised or blamed. If yes, and it fails, it is immoral. If the question of praise or blame does not apply at all, it is unmoral. This mix-up mostly appears in philosophy and ethics writing, where unmoral is sometimes used loosely where amoral would usually be chosen instead.