An equivalent to GNU's -mindepth on systems where find doesn't support it is to use -path with a pattern that requires file paths to contain a certain amount of / characters.
find targetDir -mindepth 1 -name 'target*'
becomes:
find targetDir -path '*/*' -name 'target*'
or:
find targetDir -path 'targetDir/*' -name 'target*'
And
find path/to/targetDir -mindepth 1 -name 'target*'
becomes
find path/to/targetDir -path '*/*/*/*' -name 'target*'
or:
find path/to/targetDir -path 'path/to/targetDir/*' -name 'target*'
It becomes more awkward if passing more than one dir to find:
find targetDir other/targetDir -mindepth 1 -name 'target*'
Would become:
find targetDir other/targetDir \ '(' -path 'targetDir/*' -o 'other/targetDir/*' ')' \ -name 'target*'
Another approach is to append a / to the starting directories and use ! -path '*/' to filter them out:
find targetDir/ other/targetDir/ ! -path '*/' -name 'target*'
Beware that it changes the behaviour if those targetDirs are symlinks in which case they will be followed as if you had passed the -H option. You might also find that with some find implementations, matching files are printed as targetDir//targetfile instead of targetDir/targetfile
In all those approaches beware that with some find implementations including GNU find on GNU systems, * in -name or -path doesn't match on byte sequences that don't form valid characters in the locale which would throw things off here. Prepending LC_ALL=C to those commands would work around the issue.
Appending /. and filter out with ! -name . (not even needed if the search criteria is just -name 'target*' which . doesn't match) would not have the issue:
find targetDir/. other/targetDir/. ! -name . -more-criteria
But means matching file paths are printed as targetDir/./targetFile with all find implementations. You can fix that cosmetic issue by piping the output to sed 's|/\./|/|' though.