Preheat the oven to 375°F (190°C) and line a muffin tin with paper liners.
In a large bowl, whisk together flour, sugar, baking powder, baking soda, and salt.
In another bowl, mix the egg, buttermilk, and melted butter until well combined.
Pour the wet ingredients into the dry ingredients, stirring gently until just combined.
Fold in the cranberries and orange zest gently.
Prepare the streusel topping by combining all ingredients in a bowl and using a fork or your fingers to crumble.
Divide the muffin batter among the prepared muffin cups, filling them about two-thirds full.
Sprinkle the streusel topping generously over the batter in each cup.
Bake for 18-22 minutes, or until a toothpick inserted in the center comes out clean.
Allow the muffins to cool in the pan for 5 minutes, then transfer to a wire rack to cool completely.