Hola, tienes que sobrescribir los keyframes o crear unos nuevos.
Algo como esto cambiará los colores de transición de la animación.
El keyframe por defecto es 
@keyframes background-fade-highlight {
0% {
background-color: var(--tertiary-low);
}
100% {
background-color: transparent;
}
}
Esto significa que resalta de var(--tertiary-low) a transparent. Lo cual es genial porque el color de fondo por defecto de Discourse es blanco y el cuerpo del tema no tiene fondo, por lo que transparent será blanco, pero en tu situación el problema es que el fondo es diferente, por lo que primero va a transparent y después de un pequeño retraso será #fff (el color de fondo que configuraste para topic-body).
Así que tienes que cambiar transparent para que la transición de color sea suave. Puedes sobrescribir el valor por defecto, pero quizás sea mejor crear un nuevo keyframe.
Nota: Si sobrescribes el keyframe por defecto, cambiará en todas partes donde Discourse lo use, no solo en topic-body. 
Esto sobrescribirá los keyframes por defecto.
@keyframes background-fade-highlight {
0% {
background-color: var(--tertiary-low);
}
100% {
background-color: #fff;
}
}
Si quieres crear un nuevo keyframe 
// Custom keyframes
@keyframes background-fade-highlight-custom {
0% {
background-color: var(--tertiary-low);
}
100% {
background-color: #fff;
}
}
Y añade este keyframe al cuerpo del tema.
.topic-body {
background-color: #fff;
&.highlighted {
animation: background-fade-highlight-custom 2.5s ease-out;
}
}
El código completo se ve algo así. 
body {
background-color: #F5F5F5;
}
.topic-body {
background-color: #fff;
&.highlighted {
animation: background-fade-highlight-custom 2.5s ease-out;
}
}
// Custom keyframes
@keyframes background-fade-highlight-custom {
0% {
background-color: var(--tertiary-low);
}
100% {
background-color: #fff;
}
}
Antes
Después