The bomber approached the crowd of dozens on foot in provincial capital Jalalabad as they were demonstrating in support of a local police commander who had been sacked and calling for his reinstatement, provincial spokesman Attaullah Khogyani said.
“Unfortunately, eight people were killed, all of them civilians,” he said.
A further 15 people including children were wounded in the explosion, he added.
The Islamic State group claimed responsibility for the attack in a statement.
Provincial health director Najib Kamawal confirmed the toll and said some of those wounded were in a serious condition.
Both IS and the Taliban are active in Nangarhar province.
Afghan and US officials have stepped up their attacks against IS and recently said it is steadily losing territory, with fighters largely confined to two or three districts in Nangarhar from around nine in January.
But the group has intensified attacks across the country, particularly in the east and in the capital Kabul, recruiting followers and in some places challenging the Taliban on its own turf.
Download our app and read this and other great stories on the move. Available for Android and iOS.