Use logical indexing:
result = zeros(size(grayImage));
result(grayImage <= t) = grayImage(grayImage <= t);
This is a much faster and cleaner way to access matrix elements conditionally.
Alternatively, you can do:
result = grayImage;
result(grayImage > t) = 0;