При выходе если счёт был 1 в прошлый раз, а в этот ничего не собрал, то код присвоит 0 счёту. И ещё не понимаю зачем постоянно в Update брать значение с PlayerPrefs, киньте обновление текста в OnTriggerEnter где есть инкрементация score
Так же у вас как-то запутанно всё. У вас уничтожается объект и если дело не доходит до applicationquit, то не будет сохранения. Скрипт то вместе с объектом уничтожается. Делайте отдельный скрипт который отвечает за сохранение /загрузку.