Are there any alternatives to the `find` command on linux for SunOS?

Note that it has nothing to do with Linux; that -printf predicate is specific to the GNU implementation of find. Linux is not an OS, it's just the kernel found in a number of OSes. While most of those OSes used to use a GNU userland in the past, now the great majority of OSes using Linux are embedded and have basic commands if they have any.

The GNU find command, which predates Linux, can be installed on most Unix-like OSes. It was certainly used on Solaris (called SunOS back then) before Linux came out.

Nowadays, it's even available as an Oracle package for Solaris. On Solaris 11, that's in file/gnu-findutils, and the command is named gfind (for GNU find, to distinguish it from the system's own find command).

Now, if you can't install packages, your best bet is probably to use perl:

find data/ -type f -name "temp*" -exec perl -MPOSIX -le '
  for (@ARGV) {
    unless(@s = lstat($_)) {
      warn "$_: $!\n";
      next;
    }
    print strftime("%Y-%m-%d", localtime($s[9])) . " $_";
  }' {} + | sort -r

Here, we're still using find (Solaris implementation) to find the files, but we're using its -exec predicate to pass the list of files to perl. And perl does a lstat() on each to retrieve the file metadata (including the modification time as the 10th element ($s[9])), interprets it in the local timezone (localtime()) and formats it (strftime()) which it then prints alongside the file name ($_ is the loop variable if none is specified in perl, and $! is the equivalent of stderror(errno), the error text for the last system call failure).