Why don't we use space filling curves for high-dimensional nearest neighbor search?
Preserving "locality" is a desirable property in space-filling curves, especially in this context.  But we cannot hope to actually preserve the ordering of the nearest neighbors for all points.  (The discrete versions of Hilbert's curve put adjacent cells nearly on opposite ends of the curve; in wikipedia's illustrations, see the top-central region.)

This idea might still be useful, as an sort of k approximately-nearest neighbor algorithm; but I'm not convinced that producing an appropriate (discrete version of) a space-filling curve for a dataset and querying new points onto that curve will actually be substantially faster than ball-tree.  Another problem is that the error in the approximations of "nearest" are dependent on the location along the curve, so that which curve you select will have a substantial impact on the correctness of the approximations for different sample points.