Is LastSurveyDate (or whatever) in the table you're performing the find on? (I'm guessing that DaysSinceLastSurvey is something like Get(CurrentDate) - LastSurveyDate.)
Perform the find using criteria in stored/indexed fields only. Then return to find mode, specify the criteria in the unstored/unidexed fields and constrain the found set instead of performing a find.
This can be much, much faster as your constrain is only applied to the found set produced by your first find and this should be many fewer records than the total records in your table.
The calculation is exactly as you guessed .
The calculation field is in a separate file on the same local drive and associated through File > Manage External Data Sources.
Thanks ... I should have included this in my post.
Try doing the find based on LastSurveyDate >= Get(CurrentDate) - 365 instead of on DaysSinceLastSurvey.