Heat oil in a large saucepan over medium heat. Cook onion, about 5 minutes until it starts to soften. Add cabbage, apple and salt. Cook 5 minutes until cabbage is also softened. Stir in beets and broth; bring to a simmer. Cover and cook, stirring occasionally, about 25 minutes until beets are very tender.
Using a hand-blender, purée in saucepan until almost smooth (leaving some texture). Stir in lemon zest and lemon juice and heat slowly as needed.
Serve in soup bowls, garnished with a dollop of yogurt and a sprinkle of dill.