There are about a million questions on this website about counting points within polygons. There are also a few on counting points within a grid, but most of the answers use a count-points-in-polygons method.
The problem is that this method is stupidly inefficient with a rectilinear large grid if the grid is aligned with the projection coordinates. Point-in-polygon calculations are not cheap, and if the grid is very large, there are a lot of them - we're in
O(n_points * n_grid_points) territory.
A much more efficient method is to simply round the X and Y values of each point to the nearest grid line (this is as easy as taking the coordinate index of the last grid coordinate smaller than the point X value, but could be even more efficient on large grids using a bisection search), and then count each unique set of values.
There doesn't seem to be a way to do this in QGIS/GRASS though, unless I am missing something. Is there a straight-forward way to do this efficient points-to-grid counting?