The assertion is unbounded. It will never fail in any simulation. If the req is asserted, then it will wait for infinite time for gnt to get asserted. When req is asserted, it will wait for even 1000 clocks (till end of simulation) for gnt to get HIGH. So, the sequence is true by it’s logic/virtue itself.
You may want to add a bounding condition to your assertion like following sample:
`define MAX_GNT_DELAY 1000
property p_req_to_grant(clk,rst,req,gnt,int n);
@(posedge clk) disable iff (rst)
req |-> ##[*0:n] gnt;
endproperty
assert property(p_req_to_grant(clk,ares,req[0],grant[0], `MAX_GNT_DELAY));
For more details, please refer to Section-6.10 of this book.