The reason is that you have a very sharply peaked histogram with a very long tail. The default binning, and your 20-bin option, just don't capture the range well. Try this:
figure histogram(data,[0:0.1:5 Inf]) xlim([0 5])
I've defined the edges of the bins as a vector. The result looks like this:

