The Simulator is less limited than any actual device in such things as CPU performance, memory, storage, etc. But there may be differences in Open GL and GPU performance, etc.
Your app should be checking for the existence of any hardware features before using them, and checking for nil objects and pointers as well. So anything missing, such as an accelerometer or the camera, should not cause an app to crash.
If your app is crashing on the Simulator, that is a very strong indication that it might crash on some future iOS device or OS release. So you should hunt the cause down.
The instruction sets are different between the device and the Simulator (ARM vs. x86, NEON vs. SSE), so there's an extremely tiny possibility that it could be a compiler or compiler optimization bug.