You are right, I just tried this and it acted the same way for me. In the script it seemed to only find records that had at least 1 character before the search criteria when using a *. Very strange.
Perhaps use 2 find requests, one with the * and the other without it.
To use a simple example, the goal is to return JOE, JOHN, JOAN, etc. when the user provides "JO". ("JO" becomes "*JO" when setting the variable.)
but this doesn't require a find operator at all. Just specify JO as your search criterion--either in a manual or scripted search...