A macro is the manual version: an agent clicks it on an open ticket and it runs a set of steps at once, updating the status, assigning the ticket, sending a canned reply, maybe adding a tag, instead of doing each one by hand. It's a shortcut, triggered by a person, every time.
A workflow rule is the automatic version: define the condition (a ticket comes in from a specific department, a priority field gets set to urgent, a ticket sits untouched past a time limit) and Zoho Desk runs the matching actions on its own, no agent involved. Time-based escalation rules in particular are how most teams handle SLA breaches without someone watching the clock manually.