Pinning can leads to memory fragmentation. If your application is not leaking memory but still throws SystemOutOfMemoryException then other possible reasons are that application is causing high level of memory fragmentation. Pinning could be one of the reasons of fragmentation. One should profile his application for pinned objects in heap.
This link explains what is pinning and how GC treats Pinned objects.