Use Server Actions for server-only mutations tied to forms/UI (you still validate and authorize). Use Route Handlers when you need a general HTTP API (public clients, webhooks, third parties, custom methods/headers) or non-form flows like uploads.
Expanding on the short answer — what usually matters in practice:
A tiny example (an explanation template):
// Example: discuss trade-offs for "route-handler-vs-server-action-—-how-do-you-choo"
function explain() {
// Start from the core idea:
// Use Server Actions for server-only mutations tied to forms/UI (you still validate and auth
}