Why does this cycles render have grainy edges?
As suggested in the comments, this is an artifact from anti-aliasing.

In the Film section of the Render tab in the Properties panel, set the Width of the Pixel Filter all the way down (0.01). That in essence turns off the anti-aliasing.




If you are using a shadeless material (Emission shader) so noise is not a problem, then there is another way to remove the anti-aliasing.
Set the samples to one.
With only one sample there are not enough samples for the anti-aliasing algorithms to work, because there is only one.