I had the same thing a while ago. It was caused by the command line argument '/closed' which I had added to the ilmerge call. This is described in the documentation (https://github.com/dotnet/ILMerge/blob/master/ilmerge-manual.md#26-closed).
In the documentation, they warn you that it's not an easy topic (but that is life). The way I understand it, in 'closed' mode ilmerge will try to resolve all dependencies in the DLLs which you are trying to merge. If one of those dependencies is not found, it will throw the error you are seeing.
If you one of the DLLs you're trying to merge has a reference to one of the Tridion Content Manager client DLLs (like Tridion.ContentManager.dll), and you try to merge it on a machine which does not have the Tridion Content Manager installed, this will croak. Ilmerge will follow the reference to Tridion.ContentManager.dll (which is probably there in your bin folder, so that's fine). Then it goes from there to the references of this DLL. One of those is Tridion.ContentManager.Data.dll, which is installed in the GAC when you install the Tridion CM - but it's probably not in your bin folder because it is not part of the 'client DLLs' which you are supposed to use to build your event system, templates or custom resolvers.
If you do NOT use /closed, ILMerge will not follow the references from the DLLs you're merging to the Tridion client DLLs, and you should be good.