Надо передавать в removeEventListener ту же функцию, что вы передавали в addEventListener. То есть, все color.bind(null, i)
надо сохранить - в какой-нибудь массив, например.
Однако, раз вы используете bind ради передачи индекса, можно поступить иначе - уберите bind, вместо этого назначайте элементам атрибут, значение которого затем надо будет достать из целевого элемента внутри вашего color'а.
А на самом деле, не надо ничего - ни bind, ни дополнительных атрибутов, индекс вообще передавать не надо. Вы ведь используете индекс для того, чтобы обратится к элементу, на котором и произошёл клик. Он будет доступен в обработчике как this и как event.target (event.currentTarget, если клик был на дочернем элементе).