Which is more efficient or faster? grep vs find in recursive mode

There may be other similar like find - grep structures which work better especially with many small files.
Reading big amounts of file entries and inodes at once may give a performance improvement on rotating media.

Here are the syscall statistics with the command strace:

find

strace -cf find . -type f -exec grep -i -r ‘system’ {} ;

% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
 65.21    0.286153        2778       103           wait4
  5.21    0.022875          16      1475           mmap
  4.83    0.021184          17      1250           close
  3.42    0.015023          21       702           fcntl
  3.41    0.014954          18       838           mprotect
  3.25    0.014260          15       921           fstat
  2.51    0.011033          17       643        12 open
  1.95    0.008549          16       526           read
  1.44    0.006303          15       415           brk
  1.05    0.004624          25       183           openat
  0.91    0.004010          26       156           getdents
  0.89    0.003905          19       207       103 ioctl
  0.85    0.003745          24       156           newfstatat
  0.81    0.003533          17       209           rt_sigaction
  0.62    0.002735          24       112           munmap
  0.46    0.002025          19       104           futex
  0.41    0.001815           9       207           set_robust_list
  0.41    0.001806          17       105           getrlimit
  0.41    0.001784          17       104           rt_sigprocmask
  0.39    0.001723          17       104           set_tid_address
  0.39    0.001718          17       104           arch_prctl
  0.28    0.001232           4       310       206 execve
  0.26    0.001152          18        65        65 lseek
  0.24    0.001039          10       105       104 access
  0.17    0.000755           7       103           clone
  0.13    0.000575          19        30           write
  0.05    0.000210           2       104           fchdir
  0.01    0.000059          30         2         2 statfs
  0.01    0.000028          28         1         1 stat
  0.01    0.000022          22         1           uname
------ ----------- ----------- --------- --------- ----------------
100.00    0.438829                  9345       493 total

grep

strace -cf grep -r -i ‘system’ .

% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
 25.61    0.009470          17       550           fcntl
 13.45    0.004974          18       271           close
 11.53    0.004264          23       184           openat
 10.54    0.003898          19       210           read
  9.12    0.003372          17       193           fstat
  8.93    0.003301          21       156           getdents
  8.43    0.003118          20       154           newfstatat
  4.58    0.001695          16       104       103 ioctl
  2.83    0.001045          16        65        65 lseek
  1.99    0.000735          25        30           write
  0.95    0.000350          22        16           mmap
  0.68    0.000252          32         8           mprotect
  0.31    0.000115           9        13         6 open
  0.26    0.000095          24         4           brk
  0.16    0.000060          20         3           munmap
  0.12    0.000045          23         2           rt_sigaction
  0.07    0.000027          27         1         1 access
  0.07    0.000027          27         1           execve
  0.07    0.000025          13         2           stat
  0.06    0.000024          24         1           getrlimit
  0.06    0.000023          23         1           rt_sigprocmask
  0.06    0.000023          23         1           arch_prctl
  0.06    0.000023          23         1           set_tid_address
  0.06    0.000022          22         1           set_robust_list
  0.00    0.000000           0         1           futex
------ ----------- ----------- --------- --------- ----------------
100.00    0.036983                  1973       175 total