.bin is sometimes a file for the linker. It's the next to the last step to be converted into an executeable, DLL or whatever.
.bin might just be lacking a start address which is the linkers problem. So, it is compiles such a way that key values can be found.
.bin is an extension used for Macbinary, see Binhex4 too. .bin is also used for EEPROM burners. It's not a one size fits all.
Take a look here too: **broken link removed**
Unix/Linux all bets are off. Try the standard executable a.out. No .bin there is there. Executable means that the +x is set with chmod and it could be a shell script or a binary.