Heat the oil in a saucepan and fry the onion and garlic until soft but not browned. Add the courgettes, cover the pan with greaseproof paper and cook over a low heat for 10 minutes until the courgettes are soft. Add 1.2 litres (2 pints) of the stock, cover the pan with a lid and simmer for a further 10–15 minutes.
Transfer the courgettes and a little of the stock to a blender or food processor. Purée until smooth, then pour into a clean saucepan. Add the stock that the courgettes were cooked in and the remaining stock, along with the chopped dill. Season to taste with salt and pepper, then bring to the boil.
Serve the soup in warmed soup bowls, garnished with a swirl of cream and dill fronds.