Your code is nearly right.
The problem is that matlab has several histogram functions (four as of R2014b) and you used the wrong one for what you want to do.
hist uses the x vector as bin centres with the first bin extending to cover all values before the 1st centre and the last bin extending to cover all values above the last centre. That means any of your histogram will include all the values in a regardless of your range.
As it looks like you intended x as a vector of edges anyway, you should use histc (or histcounts as of r2014b) instead of hist.
There comes the issue of what you want to do with the last bin. Your last bin is from 2.60 to 2.65. As you wrote your code, you never include the values from 2.65 to 2.68. Maybe you want x as
x = [low:0.05:high high+mod(Range, 0.05)];
Note that histc and histcounts behave differently with regards to the last bin.
Finally, in your loop, you pass x-low as bins. So effectively, you're always passing the initial bins. The -low shouldn't be there.