Git 2.26 (March 2020) changed the default rebase implementation from the 'apply' backend, which replayed commits as patches through git-am, to the 'merge' backend that powers interactive rebase. The rebase.backend config selects it and 'git rebase --apply' forces the old path.
The practical differences surprise people. The merge backend performs real rename detection, so rebases across a large refactor that previously produced hundreds of conflicts now often apply cleanly. It also honours merge.conflictStyle, respects rerere, and produces different conflict markers. Conversely, options that only exist in the patch world, such as --whitespace and -C for context lines, are only available with --apply, and combining them with merge-only options like --merge or --exec fails. If a script broke after upgrading past 2.26 with an error about incompatible options, that is the cause. Pin the old behaviour with 'git -c rebase.backend=apply rebase' only as a stopgap; the apply backend is not receiving new work.