неправильно используешь or так как php считает что ты сделал такое (цвет = красный) или (красноватое это истина), любое значение не 0 и не пусто это true поэтому Красное срабатывает
правильно - if(
in_array($apple->color,['Красное','Красноватое'])...
еще более правильно, если html отличается только цветами или именами классов, то завести массив и подставлять только изменяющиеся значения в шаблон типа так:
где то определяешь в константах:
$colors=['Красное'=>'#FF0000','Красноватое'=>'#FF0000',...];
а в коде подстановки цвета будет что то такое:
<?php=make_color_html($colors[$apple->color]??UNKNOWN_COLOR); ?>
либо сразу html шаблон
<text style="color:<?php = $colors[$apple->color]??UNKNOWN_COLOR; ?>">