Toronto came out running in the top of the first. Rajai Davis led off with a single and immediately stole second base, then, with one out, stole third. d'Arnaud walked and Eric Thames looped a singled to center, scoring Davis and advancing d'Arnaud to third.
Thames swiped second, Toronto's third stolen base of the inning, but was thrown out trying to advance to third on David Cooper's grounder to shortstop as d'Arnaud crossed the plate.
After Duke gave up one-out singles to Jonathan Diaz and Anthony Gose, Travis Snider doubled both home with two away.
Duke finished on a high note, however. Diaz led off the fourth with a base hit and the speedy Gose beat out a grounder to shortstop and both runners advanced on a throwing error by Sanchez, leaving runners on second and third with nobody out.
Duke, however, was able to pitch out of trouble without allowing another run.
Not only that, he struck out five.
"Obviously, the results weren't great," Duke said. "I thought I made some good pitches. Early in the game it seemed like they didn't hit balls hard, but they placed them well. It was a little mixed. There were times when I felt pretty good about it and times when I felt like I could have maybe done a little better."
Duke is competing with Jordan Lyles and Kyle Weiland for the fifth spot in the rotation.
Jake Marisnick hit a solo home run for Toronto in the ninth inning.
Up next: Left-hander Wandy Rodriguez will make his first start in 10 days against the Braves at Champion Stadium, beginning at 5:05 p.m. CT. Rodriguez's previously scheduled outing was rained out, so this will be only the second time this spring the Opening Day starter has worked in a game. David Carpenter, Henry Sosa and Wesley Wright are also expected to pitch.
Paul Hagen is a reporter for MLB.com. This story was not subject to the approval of Major League Baseball or its clubs.