The first problem in your sample is that you are calling PsCanvas.SaveToFile() before PsCanvas.EndDoc, EndDoc is important as it instructs ps interpreter to show the page, SaveToFile should be called after EndDoc.
The second problem is that according to your version, postscriptcanvas now supports user defined resolution (by default 300 dpi is used) but there was a problem in Lazarus because no default paper height and width was assumed, so bounding box of output ended to be 0 width/height. In lazarus revision 23386 we have fixed this problem and now a A4 paper is assumed.
Both problems may or not affect the output depending on the ps interpreter. if it worked for you on windows it might mean that ps interpreter under mac is stricter.
In the mean time you can solve the problem by doing something like:
PsCanvas := TPostscriptCanvas.Create;
PsCanvas.PaperWidth := round(PSCanvas.XDPI*595/72);
PsCanvas.PaperHeight:=round(PSCanvas.YDPI*842/72);
PsCanvas.BeginDoc;
etc
once these two points are fixed, your sample worked fine here.