Попробуйте:
$itemList[] = preg_replace('/-(.*)$/i', "", $temp['item']);
Символ $ соответствует концу ввода, поэтому заставляет. * Захватывать до конца.
Добавление? после того, как * делает его не жадным, то есть он захватит минимально возможное, а не максимально возможное, поэтому в данном случае это именно то, что вам не нужно.