I just ran into this while exporting the unity mesh to use with a java pathfinding library. I'm guessing you used NavMesh.CalculateTriangulation to get the mesh, which is actually a triangle mesh and from what I can see is just derived from the real navmesh and is for display purposes only. If you look at the paths that unity generates, I don't see how you could get those from the mesh that NavMesh.CalculateTriangulation spits out.
The triangle edges will basically go as far as they can, sometimes spanning the entire length of the terrain. So you have a bunch of triangles with one edge of say 10 units, and two that are 500 or more. And the paths unity generates will often go at 90 degree angles to those long edges, hundreds of units away from any vertices.
What works better is to export the terrain and whatever else is in the scene as a single mesh (more work but doable). Then use recast to generate the navmesh. However, as Mike said the pathfinding itself will be different in some cases.
You can use detour in unity, which isn't that difficult just write a C# wrapper for the C++ code that finds the paths. The C# port of recastnavigation is completely overkill IMO, plus it's not updated regularly. FYI you can use native dll's in unity free, just put them in the root folder not in plugins. They used a gimmick approach to restrict native dll's by just blocking them if you put them in as a plugin.
The biggest pain is actually getting the meshes out of unity with everything flipped correctly for the different coordinate system. Most of the tools available on the unity wiki for exporting to obj format don't do it correctly, and you have some for exporting meshes and some for terrains,but not one that does everything.
Chris