There's probably more going on here than I originally described. It looks like the underlying Obj-C class NSFileHandle is a class cluster, which means there are no concrete instances of NSFileHandle, only private subclasses which you can't get to at initializer time. (Thanks to @eskimo for a heads-up on this point.)
If this is like other class clusters in Obj-C, such as NSArray, when you think you are creating an instance in Obj-C, you are actually starting with a placeholder pseudo-object. This would be replaced with an instance of a private concrete subclass during initialization, but shenanigans like that aren't supported in Swift.
If that's happening here, that explains the crash. Your subclass init() is automatically calling through to super.init() which creates a placeholder and nothing else. That means your attempt to create a working subclass instance is going to fail — the placeholder isn't even a real object.
This is on top of, but separate from, the issue of whether Swift should allow you to omit an explicit initializer. That may be a bug in the "overlay" that transforms NSFileHandle into FileHandle, or in Swift's automatic Obj-C import, or it may be a defect (not exactly a bug) because the Obj-C initializer pattern (defined in header files as @Jon_Shier mentioned) doesn't have an exact equivalent in Swift initializer terms.
What you would do next depends on whether you want FakeFileHandle to have actual FileHandle/NSFileHandle behavior, or whether it's just a placeholder that has no real functionality.
For the first alternative, I'd suggest you make FakeFileHandle wrap a separate instance of FileHandle (which you initialize in the proper way). For the second, you don't need an actual file handle.
Then, for either alternative, you would have to write methods in FakeFileHandle for all of FileHandle's methods that you need. You can't actually inherit any behavior. Luckily, IIRC, NSFileHandle doesn't have a lot of methods.