Few-shot learning supplies a handful of worked examples in the prompt so the model infers the task from them without any weight update. It solves the problem that fine-tuning needs labelled data, a training run and a deployment per task, while many tasks are simple enough to demonstrate in a paragraph. It exists because it emerged from scale rather than design: the capability appeared in large models that were never trained for it.
Zero-shot means asking a model to do something it was not trained on and giving it no examples - only a description of the task. It solves the problem that every supervised approach needs labelled data for each new task, which does not scale to tasks nobody has collected data for. It exists as the capability that made general-purpose models useful, and as the upper bound that few-shot prompting is measured against.