Duncan tillhörde den gamla skotska adelsätten Duncan, deltog i Karl I:s krig med parlamentet och i det skotska legitimistkriget 1650-51 och kom till Sverige som flykting 1651. Han inträdde i svenska armén, stred 1655–57 i Polen och utmärkte sig under striderna kring Kraków och befordrades till överstelöjtnant. 1671 gick han i dansk tjänst, blev 1675 generalmajor och sändes under det skånska kriget med 2.900 man in i Halland för att erövra Halmstad och längs västkunsten söka förbindelse med norska hären men överraskades av Karl XI och tillfångatogs i det förödande nederlaget i slaget vid Halmstad 17 augusti 1676. Han utväxlades 1677, och ställdes på egen begäran inför krigsrätt men frikändes och utnämndes till kavalleriinspektör på Fyn. 1678–79 deltog Duncan i den norska fälttågen i Sverige, blev 1683 generallöjtnant och 1684 överbefälhavare över danska hären i Holstein. Han inföll samma år i Sachsen-Lauenburg och erövrade Mölln. Senare samma år följde han den kejserliga hären mot turkarna i Ungern men föll i onåd hos Kristian V och fick 1685 avsked.