Olá, você tem que sobrescrever o keyframes ou criar um novo.
Algo assim mudará as cores de transição da animação.
A keyframe padrão é 
@keyframes background-fade-highlight {
0% {
background-color: var(--tertiary-low);
}
100% {
background-color: transparent;
}
}
Isso significa que ele destaca de var(--tertiary-low) para transparent. O que é legal porque a cor de fundo padrão do Discourse é branca e o corpo do tópico não tem fundo, então transparente será branco, mas na sua situação o problema é que o fundo é diferente, então ele vai primeiro para transparente e depois de um pequeno atraso ele será #fff (a cor de fundo que você definiu para topic-body).
Então você tem que mudar o transparente para fazer uma transição de cor suave. Você pode sobrescrever o padrão, mas talvez seja melhor criar uma nova keyframe.
Nota: Se você sobrescrever a keyframe padrão, ela mudará em todos os lugares onde o Discourse a estiver usando, não apenas no topic-body. 
Isso sobrescreverá as keyframes padrão.
@keyframes background-fade-highlight {
0% {
background-color: var(--tertiary-low);
}
100% {
background-color: #fff;
}
}
Se você quiser criar uma nova keyframe 
// Custom keyframes
@keyframes background-fade-highlight-custom {
0% {
background-color: var(--tertiary-low);
}
100% {
background-color: #fff;
}
}
E adicione esta keyframe ao corpo do tópico.
.topic-body {
background-color: #fff;
&.highlighted {
animation: background-fade-highlight-custom 2.5s ease-out;
}
}
O código completo fica mais ou menos assim. 
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
Depois