He played baseball at Limestone Community High School and Bradley University. He was named 1984 Missouri Valley Conference Player of the Year and graduated from Bradley with a Bachelor in Science in 1985.
As part of the United States team in baseball at the 1984 Los Angeles Olympics, he pitched two innings against Italy; the U.S. won the game, 16 to 1.
On June 4, 1984, he was drafted by the St. Louis Cardinals in the 1st round (7th pick) of the 1984 Major League Baseball Draft, and signed with them. He was traded to the Pittsburgh Pirates along with outfielder Andy Van Slyke and catcher Mike LaValliere for catcher Tony Peña on April 1, 1987 before he could pitch in a big league game for the Redbirds. He made his major league debut on June 5, 1987, starting against the New York Mets and Dwight Gooden.
Dunne had a fine rookie season with the Pirates, going 13-6 with a 3.03 ERA and allowing just 143 hits in 164 innings. Those numbers led to him finishing second in the National League Rookie of the Year voting. On April 21, 1989, he was traded by the Pittsburgh Pirates with minor leaguer Mark Merchant and Mike Walker to the Seattle Mariners for Rey Quiñones and Bill Wilkinson.
Injuries then hampered much of the rest of his career. He was dealt to Seattle Mariners, and later pitched for the San Diego Padres and the Chicago White Sox. His last big league game was in 1992 for the White Sox.
Dunne's big league career covered five years and he finished with a 25-30 record and a 4.08 ERA. He pitched in 85 games, 76 of them as a starter, allowed 471 hits in 474 innings, fanned 205 and walked 225. 
Dunne became a coach at Bradley University in 2000 and has also coached youth baseball and basketball.