Prototype is usually something working, while spike can be pure research (e.g. validate that APIs are feasible and enough, or that something satisfies requirements). Prototype is usually more polished/usable. Experiment in my mind is something which user-facing but not in stable yet.
So for me they are differentiated enough, but could be that I am just used to it.