Off-spinner Mohammad Mahmudullah also failed to find a place in the 15-member squad, chief selector Rafiqul Alam told AFP.
Mohammad Ashraful was retained as captain.
Nafees was replaced by teenager Junaid Siddique, who scored 71 against Pakistan in the only match he played during the Twenty20 World Championship in South Africa in September.
Paceman Nazmul Hossain returned to the squad after more than a year in place of Mahmudullah, who has played just one one-day international.
"Since the Twenty20 World Championships, Siddique has been playing some impressive cricket. We thought he has now become mature enough to play one-day international cricket," Alam said.
"Nafees is one of the stars in Bangladesh cricket but he has been out of form since the World Cup in the Caribbean. He is not doing well even in the ongoing domestic cricket."
Bangladesh will play three one-day internationals and two Tests during the month-long tour of New Zealand. The one-dayers will be played at Auckland (Dec 26), Napier (Dec 28) and Queenstown (Dec 31).
The two sides also plan to play a Twenty20 charity match on December 23 to raise funds for the survivors of Cyclone Sidr, which devastated the South Asian country last week.
One-day squad: Mohammad Ashraful (capt), Mashrafe Mortaza, Javed Omar, Tushar Imran, Abdur Razzak, Saqibul Hasan, Syed Rasel, Aftab Ahmed, Mushfiqur Rahim, Shahadat Hossain, Junaid Siddique, Farhad Reza, Mehrab Hossain Junior, Tamim Iqbal, Nazmul Hossain.