потому, что когда js применяет стили, они записываются инлайном (т.е.) внутри тега, эти стили являются более приоритетными
Можете в :hover цвету прописать !important, тогда он будет приоритетнее инлайнового стиля
хотя !important это плохая практика
Используйте добавление класса а не inline стиля (который имеет приоритет над селекторами, если правда в них нет !important, но это плохая практика).
Пример https://jsfiddle.net/Vlad_IT/z8fnwo7g/1/