Nabi, 37, will continue as a player but said he and the selectors were not “on the same page”.
“As of last year, our team preparation has not been at the level a captain would want or need for a major tournament,” he said in a statement on Twitter.
“In addition, the team manager, the selection committee and I were not on the same page in some of the last tours, which affected the team balance.”
— Mohammad Nabi (@MohammadNabi007) 1667568227000
He wrote: “Therefore, with all due respect, and with immediate effect, I announce that I am stepping down as captain and will continue to play for my country whenever the management and team need me.”
Afghanistan, coached by former England batsman Jonathan Trott, finished the Super 12 stage in Australia without a win.
They had two excesses and two losses to be at the bottom of the table of six teams in Group 1.
A middle-order batsman and off-spinner, Nabi has played 104 T20 games for Afghanistan since his debut in 2010.