Trump announced the troop deployment at a joint news conference with Duda in the White House Rose Garden shortly after the two leaders signed a joint declaration affirming defence cooperation and watched a US-made F-35 fighter jet fly overhead.
Poland will buy 32 F-35 advanced warplanes, said Trump, who praised Warsaw for increased defence spending to meet its NATO commitments.
Duda, who is considering naming the US installation "Fort Trump", said the new influx of troops was needed because of Moscow's past aggression against Poland and to help solidify his country's ties to the West.
"Russia again is showing its unkind, unfriendly imperial face," he said. "Russia is always looking out to take our territory."
Trump said earlier the troop contingent could come from US forces in Germany, which he has accused of paying too little for NATO's common defence.
The decision by Trump represents an effort to cater to the interests of Poland, a key NATO ally, while not overly antagonising Russian President Vladimir Putin, with whom Trump would like to have friendly relations. He and Putin are to meet in Japan in two weeks.
"I hope that Poland is going to have a great relationship with Russia. I hope that we're going to have a great relationship with Russia," said Trump.
The United States already has troops in Poland as part of a 2016 agreement with the NATO military alliance in response to Moscow's annexation of Crimea from Poland's eastern neighbour Ukraine in 2014.
NATO Secretary-General Jens Stoltenberg issued a statement welcoming the deployment.
"Today's announcement is part of NATO's measured, defensive and proportionate efforts to strengthen our deterrence and defence," he said.