I'm not entirely sure none exist, but I've certainly never heard of one. If they can be done, I should think there would be some major disadvantages.
Prepending to a file generally requires a full copy of the existing data. In a file system, you might be able to handle it to adding a block to the beginning of the file, but it still causes a few minor problems. Blocks with free space would have to keep the free space at the beginning, so it would very likely require extra seeking by the drive to find the proper location.
Handling free space on the drive, when working backward, would become a major pain. It would contradict most programming techniques, since you would have to find the max index and then work back from there.
I can imagine it would slow down on large files, and would definitely be a ridiculous thing to program.
Instead of finding a reverse filesystem, why can't you simply write the file as usual and parse it in reverse? Work out a basic message formatting scheme, read the file and parse messages from it, then display them last-to-first. If you only need the last messages, seek to the end of the file, then back n messages. It would have a similar outcome, but with far less work and comparable or better performance.