Привет! Вам нужно переопределить keyframes или создать новый.
Вот что-то подобное, что изменит цвета перехода анимации.
Ключевой кадр по умолчанию: 
@keyframes background-fade-highlight {
0% {
background-color: var(--tertiary-low);
}
100% {
background-color: transparent;
}
}
Это означает, что подсветка идет от var(--tertiary-low) к transparent. Это удобно, потому что цвет фона по умолчанию в Discourse — белый, а у тела темы нет фона, поэтому прозрачный будет выглядеть как белый. Но в вашем случае проблема в том, что фон другой: сначала он становится прозрачным, а через небольшую задержку — #fff (цвет фона, который вы установили для topic-body).
Поэтому вам нужно заменить transparent, чтобы обеспечить плавный переход цвета. Вы можете переопределить стандартный вариант, но, возможно, лучше создать новый ключевой кадр.
Примечание: Если вы переопределите стандартный ключевой кадр, это изменит его везде, где Discourse его использует, а не только в теле темы. 
Это переопределит стандартные ключевые кадры:
@keyframes background-fade-highlight {
0% {
background-color: var(--tertiary-low);
}
100% {
background-color: #fff;
}
}
Если вы хотите создать новый ключевой кадр: 
// Пользовательские ключевые кадры
@keyframes background-fade-highlight-custom {
0% {
background-color: var(--tertiary-low);
}
100% {
background-color: #fff;
}
}
И добавьте этот ключевой кадр к телу темы:
.topic-body {
background-color: #fff;
&.highlighted {
animation: background-fade-highlight-custom 2.5s ease-out;
}
}
Полный код выглядит примерно так: 
body {
background-color: #F5F5F5;
}
.topic-body {
background-color: #fff;
&.highlighted {
animation: background-fade-highlight-custom 2.5s ease-out;
}
}
// Пользовательские ключевые кадры
@keyframes background-fade-highlight-custom {
0% {
background-color: var(--tertiary-low);
}
100% {
background-color: #fff;
}
}
До
После