Preheat the oven to 350°F (175°C). Line a 12-cup cupcake tin with paper liners and lightly spray the liners with non-stick spray.
Combine the canola oil and chopped semi-sweet chocolate in a heatproof bowl and microwave in 30-second increments, stirring between each, until melted and smooth; set aside to cool slightly.
In a medium bowl whisk together the flour, baking soda, baking powder, 1/2 cup cocoa powder, cinnamon, and 1/2 teaspoon salt; set aside.
In a large bowl whisk the 2 large eggs, 1 large egg yolk, granulated sugar, light brown sugar, and 1 teaspoon vanilla until smooth.
Whisk the cooled oil-and-chocolate mixture into the egg-sugar mixture until combined, then beat in 1/3 cup sour cream.
Fold the dry ingredients into the wet ingredients with a rubber spatula until just combined; do not overmix.
Stir in 1/3 cup hot coffee or hot water until evenly combined, then fold in the drained shredded zucchini until just incorporated.
Divide the batter among the prepared liners, filling each about 3/4 full (fill up to the liner edge for larger domes). Bake for 20 minutes or until a toothpick inserted in the center comes out clean.
Remove cupcakes from the oven and cool completely on a wire rack before frosting.
For the frosting, sift together 3 cups confectioners' sugar and 3/4 cup cocoa powder into a bowl to remove lumps.
Beat 4 ounces unsalted butter with a hand mixer or stand mixer on medium-high until creamy, about 2 minutes.
Reduce mixer speed to low and slowly add the sifted sugar and cocoa, alternating with 2 tablespoons sour cream and 3 tablespoons milk; add 1/4 teaspoon salt and 1 teaspoon vanilla.
Once all ingredients are added, beat on medium-high until light and creamy, about 2 minutes. Frost cooled cupcakes.