Imagine the codewords as red points deparated by their Hamming distance (there will usually be too many dimensions, but it is just a sketch after all). If the code has distance $d$, then they are all at least that far apart, and quite often they are further. Denote remaining possible words by black points, scattered between the codewords.
Now imagine spheres of radius $d-1$ drawn around each codeword. In each sphere, there is exactly only one red point, although many spheres will be overlapping and will share black points.
Pick one of the codewords to pay attention to. Making $d-1$ errors or less will result in one of the black dots in that codeword's sphere. Potentially there is another red dot that is exactly $d$ away from the first codeword, and if you made the $d$ errors necessary to switch the first codeword to the second, then that cluster of errors would be undetectable: after all, it looks like you got a real codeword! So, you can only reliably detect up to $d-1$ errors.
Any more errors might look like no error at all, or it might look like $d-1$ errors from a different codeword. However, you have no way of knowing how many above $d$ occurred.