Okay, I'm now working from Source.
I found Sdl.GetNativeLibrary() in the source code and worked out that
FuncLoader.LoadLibrary(Path.Combine(assemblyLocation, "libSDL2-2.0.0.dylib")) == IntPtr.Zero.
Unfortunately, the fallback routine for this situation is "Welp, all failed, PANIC!!!". That is the actual comment. Not exactly helpful, but it made me giggle. You get a pass.
So, that means that ...
public static extern IntPtr dlopen(string path, int flags);
... is returning IntPtr.Zero where path=Path.Combine(assemblyLocation, "libSDL2-2.0.0.dylib"). I have to assume assembly location is wrong, then. I don't think libSD2-2.0.0.dylib would be broken or there'd be a lot more uproar.
Assembly location is defined thusly:
var assemblyLocation = Path.GetDirectoryName((new Uri(typeof(Sdl).Assembly.CodeBase)).LocalPath);
Perhaps if I change LocalPath to AbsolutePath? Worth a shot I guess.
I'm assuming typeof(Sdl) is stored in MonoGame.Framework.dll, so it would have to be a reference to the bundled location? Could it be getting typeof(Sdl) from somewhere else somehow? I could reset assemblyLocation to System.Windows.Forms.Application.StartupPath if that's the case.
Will submit a few different apps for testing and let you know which, if any, work.