Parameter order. FIND() and SEARCH() starts with the string to find, followed by where to search. If you have the parameters reversed, you may not get the expected result.
Text Case. In order to match, text must be the same case. If you need to match text in different cases, consider using a REGEX function, or converting all text to UPPER() or LOWER() case.
White space. In order to match, all characters must be the same, including white space. To remove leading/trailing white space, use TRIM().
Not text. One of your parameters may not actually be text, but a number or an array. If one of your inputs is a lookup, this is likely the problem. You can convert the number or array to text using & "".
Misc. issues
Extra quotes. If your formula references a field that can have multiple values, such as a linked record field, multiple-select field, or a lookup field, you may sometimes see extra quotes in the result. These extra quotes appear around values that contain special characters, such as a comma or quote character.
Extra commas or spaces. If your formula includes commas or spaces between field values, but some fields do not have values, you may have extra characters. Rewrite the formula to only include those characters when the field has a value.