The reason is mostly arcane: I took over the T/P convention from Delphi and Delphi has no managed pointers... When I thought about it I forgot about weak references and thus decided that using both 'ref' and 'ptr' to the same type is likely a design mistake anyway so I didn't want to encourage it.
That said an R prefix for 'ref' is fine with me. However: T/P is mostly about a distinction between value type vs reference type, it doesn't matter that much which kind of reference type it is; I use type PContext = var TContext too. ;-)
BTW there is also 'F' for an effect type and 'E' for an exception ... IMHO the current style works quite nicely and is flexible. (Yes I'm aware that many programmers find prefixthing ugly and love prefix.thing. But even C# uses prefixes: I for interfaces and T for type parameters.)