Как-то я упустил из виду функцию TerrainData.SetDetailResolution(int detailResolution, int resolutionPerPatch). Параметр resolutionPerPatch как раз задаёт размер блока травы, который рисуется за 1 drawcall. Минимальное значение ― 8, максимальное ― detailResolution, по умолчанию 16.
Поднял его с 16 до 64, drawcalls упали с 1000..1500 до 500..600, а fps подрос на 5..10.