FIND FIRST has a very unfortunate mythology grown up around it which claims that it is "faster" than plain old FIND because it, supposedly, eliminates an extra internal operation to see if the record is really unique.
This mythology is false.
Code:
FIND customer WHERE custNum = 13.
does NOT look to see if there is more than one custNUm 13. There is a unique index on custNum and the database *knows* that that is a unique find. No extra work is performed and adding FIRST has zero impact on the performance of the statement.
If there is zero impact there is no harm, right?
Wrong.
Because of this myth certain well-known applications have promulgated a policy of always adding FIRST whenever someone types FIND. As a result cases where the FIND is NOT unique now "work". Instead of getting a runtime error when ambiguous criteria are specified the code "just works". Except that now it is working wrong (this is often known as a "bug"). Where you should have had a FOR EACH processing a whole set of records you are only processing a single record. This will often sneak past QA because test systems don't have real data. It may even be unnoticed in production for a very long time. Until a user adds that second or third control record and only the children of the first are being updated (this is just one example, there are an infinite number of ways that specious FIRST keywords can go wrong).
To make it even more fun different WHERE clauses can result in different supposedly FIRST records.
In defense of the "it's faster" myth it is true that sometimes FIRST does make FIND faster. This happens when the WHERE clause is not unique and there are many records in the result set. In other words you found the wrong record really fast. Congratulations.
You could, perhaps, argue that a FIND FIRST prior to entering a loop which iterates over the result set with FIND NEXT is a reasonable usage. And that isn't completely wrong but, in such a case why aren't you using FOR EACH?
FOR EACH is much more powerful and efficient. It supports the use of multiple indexes to resolve the WHERE clause along with explicit sort criteria in the BY clause and in a client/server environment it vastly reduces network traffic.
The FIND statement is a wonderful statement when used to find a single unique record. In which case there is no advantage to slapping a FIRST into the statement. If you are not looking for a single unique record then FIND is almost always the wrong statement to be using and FIND FIRST is compounding that error.