Wow, that surprises me. In one case I ran, the profiler reported the time spent populating the canvas dropped from 80 seconds to 10 seconds. That was using MATLAB r2012b 64 bit on Windows 7 for creating a cloudPlot from around 10M data points. If I can figure out what the difference was I will let you know.
Love this function. I haven't worked with sparse matricies much so I can't speak to the robustness of this, but as food for thought:
The counting on lines 152 - 155 can be done more quickly using
canvas = full(sparse(xBinIndex,yBinIndex,1,bins(1),bins(2)));
Anyway, thanks for this submission and for maintaining and updating it.