Immoral means acting against moral standards — the person knows the rule and breaks it. Amoral means operating outside moral considerations altogether: the standards simply do not apply or are not consulted. A thief is immoral; a market, a machine or an infant is amoral.
The core difference
Both prefixes negate, but differently. Im- means "not conforming"; a- means "without".
- immoral — violates accepted standards: an immoral act.
- amoral — outside moral judgement: an amoral algorithm, amoral market forces.
Why the difference bites
Calling someone amoral is a much stranger accusation than calling them immoral. Immoral says they did wrong; amoral says right and wrong were never in play for them — which, applied to a person, is a claim about their whole moral capacity rather than about one action.
The third term
Nonmoral is sometimes used in philosophy for things to which moral categories simply do not apply — the colour of a wall. It overlaps with amoral but avoids its accusatory edge.