Поскольку количество звездочек не меняется, а меняется только их цвет, используйте color={item.rate >= X ? 'color on' : 'color off'}
на каждой иконке:
<Text>{item.rate}</Text>
<View>
<Icon name="star" color={item.rate >= 1 ? '#9fa1a7' : '#ffffff'} type="solid" size={16}/>
<Icon name="star" color={item.rate >= 2 ? '#9fa1a7' : '#ffffff'} type="solid" size={16}/>
<Icon name="star" color={item.rate >= 3 ? '#9fa1a7' : '#ffffff'} type="solid" size={16}/>
<Icon name="star" color={item.rate >= 4 ? '#9fa1a7' : '#ffffff'} type="solid" size={16}/>
<Icon name="star" color={item.rate >= 5 ? '#9fa1a7' : '#ffffff'} type="solid" size={16}/>
</View>
Или сгенерируйте звезды из массива, чтобы уменьшить количество повторений:
<Text>{item.rate}</Text>
<View>{
[1, 2, 3, 4, 5].map(score =>
<Icon
name="star"
color={item.rate >= score ? '#9fa1a7' : '#ffffff'}
type="solid"
size={16}
/>
)
}</View>