Assuming this process is run once a day and you want current day plus last 90 days, give this a try:
declare @BatchSize int = 10000,
@CurrentDate date = getdate(),
@KeepDays int = 90;
while @BatchSize > 0
begin
delete top (@BatchSize)
from dbo.ServiceLog
where
Created < dateadd(day,-(@KeepDays),@CurrentDate);
set @BatchSize = @@ROWCOUNT;
end