[3] Duncan declined a professional contract with New York Red Bulls II in 2015, instead pursuing opportunities in Europe.
[6] During his first season at the club, he played for Valenciennes II in Championnat National 3, making his debut on May 14, 2016, starting at right back in a 2–1 loss to Olympique Noisy-le-Sec.
[9] The Red Bulls announced on March 9, 2018, that they had signed Duncan to a Major League Soccer contract due to his "attitude and work ethic during preseason.
"[10][11] He started in the Red Bulls' MLS season opener against Portland Timbers the next day; television commentator Jonathan Yardley described Duncan as "dominating" and that he "totally manhandled" his experienced direct opponent, Sebastián Blanco, in the 4–0 win.
[16] His season was cut short due to an ACL injury suffered against Orlando City SC on March 31, 2018.
[19] On August 20, 2020, Duncan scored the loan goal for Red Bulls in a 1–0 victory over rival New York City FC in the Hudson River Derby.
[3] Duncan made his senior national team debut on December 9, 2020, being substituted for Julián Araujo in the 74th minute of a 6–0 friendly victory versus El Salvador.