William Dunn besuchte die Grundschule seiner Heimatstadt Hanover und studierte danach bis 1832 am Indiana College sowie bis 1835 am Yale College. Nach einem anschließenden Jurastudium und seiner im Jahr 1837 erfolgten Zulassung als Rechtsanwalt begann er in diesem Beruf zu arbeiten. Gleichzeitig schlug er eine politische Laufbahn ein. 1848 wurde er in das Repräsentantenhaus von Indiana gewählt. Im Jahr 1850 war er Delegierter auf einer Versammlung zur Überarbeitung der Staatsverfassung.
Dunn wurde Mitglied der 1854 gegründeten Republikanischen Partei. Bei den Kongresswahlen des Jahres 1858 wurde er im dritten Wahlbezirk von Indiana in das US-Repräsentantenhaus in Washington, D.C. gewählt, wo er am 4. März 1859 die Nachfolge von James Hughes antrat. Nach einer Wiederwahl konnte er bis zum 3. März 1863 zwei Legislaturperioden im Kongress absolvieren. Diese waren von den Ereignissen des Bürgerkrieges geprägt. Ab 1861 war Dunn Vorsitzender des Patentausschusses. Im Jahr 1862 wurde er nicht wiedergewählt.
Trotz seiner Mitgliedschaft im Kongress nahm William Dunn aktiv am Bürgerkrieg teil. Zwischen Juni und August 1861 war er Stabsoffizier bei General George B. McClellan. Ab 1863 war er Militäranwalt. Dabei stieg er bis zum Brigadegeneral auf. Auch nach dem Ende des Krieges blieb Dunn Jurist im Dienst der US Army; im Dezember 1875 stieg er zum obersten Militärrichter (Judge Advocate General) auf. Am 22. Januar 1881 trat er in den Ruhestand. Er starb am 24. Juli 1887 auf seinem Landsitz „Maplewood“ in Virginia. Mit seiner Frau Elizabeth Francis Lanier (1822–1910) hatte er sechs Kinder.