Nothing holds still, including the ground
Most robotics domains eventually settle into some structure a robot can rely on: a warehouse has fixed aisles, a factory floor has consistent lighting, a hospital corridor has flat tile. Farms offer almost none of that. The terrain itself changes week to week as fields are tilled, planted, irrigated, and rained on, so a path that was firm and level on Monday can be a rutted mudbank by Friday. Slopes, loose soil, and standing water all change how a robot's wheels or tracks behave, and unlike a warehouse floor, nobody is going to flatten or clean a field for the robot's benefit. A navigation and control stack built for agriculture has to assume the ground under it is an unreliable, shifting surface rather than a known constant.
Layered on top of that is the sheer variability between individual plants. Two rows of the same crop, planted the same day, can differ wildly in height, spacing, leaning angle, and health depending on soil pockets, sun exposure, or pest damage. A robot that expects uniform rows will misjudge gaps, brush against foliage it should avoid, or miss plants it should be treating. Add in seasonal change, weather exposure that ranges from blazing sun to driving rain to dust, and the fact that the robot is often working unsupervised for hours at a stretch, and the result is an environment that never lets the robot settle into a fixed model of its surroundings the way an indoor robot can.
