Phrasing matters here. There are many similar words you could have used, and I would probably agree with many of them, but you went with:
There's no incentive for showing compassion online, apart from virtue signaling.
If you believe there is NO other reason to be nice, other than virtue signaling, that means that EVERY time you see someone being nice online, you assume that they are only doing it to create the illusion of being a nice person.
This is where phrasing comes in.
If you said many or most people are only nice for this reason, we could debate the quantity, but for the most part I'd agree with that.
But you said there is no other incentive. I have no interest in virtue signaling, but I do like to be compassionate online. I can think of various reasons why I personally show compassion online. Since you can't think of a single other reason, it must be because you've never experienced them. I must assume that any time that I see you showing compassion, it must be because you are virtue signaling, because that's the only reason you've ever experienced, and you assume that everyone else is doing the same.
Perhaps you didn't mean exactly what you wrote, but based on the words you used, that's what you told us.