Preheat oven to 350°F (177°C). Spray a 9×5-inch loaf pan with nonstick spray.
Make the streusel first: Whisk the flour, sugar, and cinnamon together in a medium bowl. Cut in the cold butter with a pastry cutter, your hands, or two forks until mixture resembles pea-size crumbs. Place in the refrigerator until ready to use in step 4.
Make the bread: Whisk the flour, baking soda, and salt together in a large bowl. In a medium bowl, whisk the egg, brown sugar, and granulated sugar together until combined. Whisk in the buttermilk, oil, vanilla, and orange zest. Pour the wet ingredients into the dry ingredients, then whisk to completely combine. Fold in the cranberries and nuts (if using).
Pour the batter into prepared loaf pan. Top evenly with streusel, pressing it down gently.
Bake for 45 minutes to 1 hour, covering with foil halfway through for even browning. Check with a toothpick in the center, it should come out clean. Cool bread completely in the pan on a wire rack.
Make the glaze: In a small bowl, whisk the confectioners’ sugar and orange juice together, adding more juice for desired thickness. Drizzle over cooled bread.
Slice and serve. Store leftovers at room temperature for 1 day or in the refrigerator for up to 1 week.