The 'diff" function returns only whole week count, namely 7 days. It does not count incomplete weeks with less than 7 days. To achieve your expected outcome, you should make sure that the days are at the start of the week. The "trunc" function, which rounds a date to the first day of the specified time unit, can help you compute what you want :
diff(trunc('2021-10-25', "weeks"), trunc('2021-10-21',"weeks"), 'weeks')