One good way that works in Objective C would be this one: https://stackoverflow.com/questions/9454638/copy-to-pasteboard-file-paths-and-urls-on-snow-leopard-or-above#12055954
Unfortunately it seems not to be supported as it requires use of NSArray, and Xamarin isn't NSArray-friendly (as alternatives are preferable but in this case there are no alternatives that work). The biggest problem is that NSPasteBoard.WriteObjects requires NSPasteboardReading, and Xcode considers that NSArray that contains only NSUrl conforms to this, while Xamarin doesn't think so, and unfortunately NSUrl doesn't work (no exceptions but simply it doesn't get the job done).
One interesting thing is that I could make this work by using NSPasteboard.SetPropertyListType for the dragging pasteboard, but the same code doesn't do anything for the general pasteboard.
Also there is this article on how to do this in Xamarin: http://blog.onobytes.com/2014/07/01/xamarin-mac-copy-a-file-to-nspasteboard/ but that neither works neither it is the proper way to do that (NSUrls are recommended by Apple for this case).