Special equipment: a deep-frying thermometer; a 3 1/2- to 4-inch round cookie cutter; cannoli tubes; a pastry bag fitted with a 1/4-inch tip
For the cannoli shells: Pulse the flour, granulated sugar, cinnamon and salt together in a food processor. Add the butter and pulse until thoroughly combined. Add the egg yolk and Marsala and process until the dough forms a ball. Turn the dough out onto a piece of plastic wrap and flatten into a disk. Refrigerate for 10 minutes.
Fill a large, wide pot with 2 inches of oil and heat over medium-high heat to 350 degrees F.
Meanwhile, lightly flour a work surface and roll the dough out into a thin circle, about 1/8-inch thick. Cut out as many circles as possible with a 3 1/2- to 4-inch round cookie cutter, then gather the scraps, reroll, and cut out more (discard any remaining scraps).
Line a baking sheet with paper towels. Wrap a circle of dough around a cannoli tube. Lightly moisten an edge with water and press the edges together very firmly to seal (if not well-sealed, the cannoli shells will open while frying). Repeat with as many cannoli tubes as you have. Fry the tubes with the dough, turning once, until the shells are golden brown all over, 4 to 5 minutes. Carefully remove the tubes from the oil and slip off the cannoli shells onto the paper towels. Let the tubes cool slightly, then repeat until all of the dough is fried, adjusting the heat as necessary to keep the oil at 350 degrees F. Cool the shells completely.
For the filling: Mix the ricotta, confectioners' sugar, orange zest and vanilla together in a bowl until smooth. Stir in the chocolate.
Fill a pastry bag fitted with a 1/4-inch tip with the ricotta mixture. Hold a cannoli shell in one hand; with the other, insert the pastry tip into the center of the shell and pipe out the filling. Turn the shell around and fill the other side. Repeat with the remaining shells and filling. Arrange on a platter and dust with confectioners' sugar. Serve filled shells immediately; alternatively, store unfilled shells in an airtight container at room temperature for up to 4 days and fill when ready to serve.