It depends on the layer. Matrix used Olm for device-to-fecice encryption, which is a clone of Signal’s double ratchet, and is PFS. For message history however we use Megolm, which is a simpler hash ratchet which is synchronised across the members of a group by sharing its state over Olm. You typically replace the Megolm ratchet every 100 msgs or 1 week, but depending on how fast you do that and how long you store the keys for, you can get PFS. The problem is that most users want to be able to access their chat history from the server, which is by definition incompatible with PFS as you have to keep the message keys around to decrypt the msgs.