I have a couple of ideas. Firstly, you might find that it actually works despite the error message. Unity assumes that there are no surface normals because they are not contained in the vertex data, but it has no way of knowing that they are actually being generated in the fragment shader. They are still being written to the 'Normal' attribute of the 'SurfaceOutput' structure.
Have a look at our shader
here. Note that the vertex shader creates dummy values for the normal and tangents. We had a similar error with 'Shader wants tangents but the mesh doesn't have them' and this fixed it. The actual normal is computed in the first line of the fragment shader, and we never compute or use the tangents.
I don't know how the SSAO system in Unity works, but maybe you can tweak the shader code with something similar. Or maybe it needs to know about the Cubiquity custom vertex shader?
Lastly, you can probably create real vertex normals with Mesh.RecalculateNormals(). However, they will be smoothed normals and won't match the ones which our shader computes. Not sure how much that matters for SSAO. This function call could be added to the 'BuildMeshFromNodeHandle' function in the ColoredCubesVolume (be aware that the TerrainVolume has this function too, so get the right one).