The two solve different problems and are constantly confused for each other.
RAG supplies knowledge at query time by putting documents in the prompt.
Fine-tuning changes the weights so the model behaves differently.
Knowledge versus behaviour is the distinction that resolves most cases.
Use RAG when facts change, are private, or must be cited.
A policy that changes monthly belongs in an index, not in weights.
RAG updates by reindexing a document, which takes seconds.
A fine-tune updates by retraining, which takes hours and costs money.
RAG can show its sources, and a fine-tuned model cannot say where it learned something.
Use fine-tuning for consistent format, a specific tone, or a narrow repeated task.
Also use it to make a small model match a large one on that task and cut cost.
Fine-tuning is poor at teaching facts, since they are absorbed unevenly and cannot be verified.
A model that has read your documentation once is not a model that knows it.
The two combine well, with a fine-tune for behaviour and retrieval for current facts.
Try prompting first, then RAG, then fine-tuning, in that order of cost and effort.