Because right now the learner2d takes all the points into account when computing the loss for each triangle. Although this is something we want to lose, this has some benefits, as you can for example, take the second derivative of the function into account (or as the default loss is currently implemented, taking the deviation from the linear interpolation + gradient)
Also I am not sure if people have written custom loss functions, which are going to be different for the LearnerND, so it is not a drop-in replacement.
In the future I would like to implement a way to maintain locality and still be able to take the second derivative into account (like taking the loss over a simplex and it's neighbours or something like that). But to me this sounds like a non-trivial task.
However, once implemented, it could really improve the quality of the LearnerND