What you have created are TWO find requests, each with different criteria specified instead of ONE find request with two sets of criteria specified.
As a result, you are finding all records that are either within the given date range OR that have the specified Disposition ID.
Here's how to fix it when using a stored find request:
Click the second request, then click Delete.
Click the first request and then click Edit.
In the Edit Find Request dialog, click Disposition ID and enter the name of the variable, Click Add.
Now you have one request with two criteria.
My personal preference, however, is not to use the variables and stored request in the first place. Instead, I'd script it like this:
Go To Layout [appointments]
Enter FInd Mode  ---> clear the pause check box.
Set Field [appointments::Appointment Date ; Get ( CurrentDate ) & "..." & Get ( CurrentDate ) + 30 ]
Set Field [appointments::Disposition ID ; 2 ]
Set Error Capture [on]
Perform Find 
The script is only a little simpler than yours, but you can see all the criteria specified without having to open a dialog box to see it.
I now realize those script steps were being treated like an “OR” and not as an “AND” which is what I thought I was doing.
Thanks for the clarification and your suggested coding technique.