What makes a board "Arduino Compatible"?
The problem here is that "compatible" can mean so many things in different contexts and to different people.  For instance, it may mean any of the following:


Can be used with the Arduino IDE without any need for additional board installation of other modifications
Can be used with the Arduino IDE after modification (boards installed)
Uses the same (or very similar) API to the Arduino system
Has the same footprint as an existing official Arduino board
Is a device which will work with an Arduino board and has software available to operate it


All very different meanings.

Point 1 could be a board that is based on the design of an existing Arduino board (say the Uno) but built into a new form factor, maybe with additional hardware and peripherals added.  It is still treated as if it was the board the design was based on though.

Point 2 would be a board that is similar, though not the same, as an existing board.  A different board definition may be required to map the IO pins properly, for instance.  It could use a slightly different chip in the same supported family. You still use it as an Arduino, but it's not the same as an existing Arduino board.

Point 3 may mean it's based on a completely different chip.  The programming environment may be almost the same, but it's hard to get 100% API compatibility.  Arduino sketches and libraries may work out of the box, or may not.

Point 4 could be a board that, internally, is completely different to the Arduino, uses a different programming language, IDE, etc, yet the layout of the board is the same as, say, an Arduino Uno.  A good example is the Mecanique Firewing - an Uno footprint, but a PIC32 chip instead of an Atmel, and Basic instead of C++.  Most Arduino shields would just plug in and work though, software permitting.

Point 5 is from the completely opposite direction.  This is a device which "is compatible with" in that "it will work with" and Arduino.  That could be on an electrical level (it's a 5V device and will connect to the Arduino) or that it has full software support ("Download our Arduino library...").  It has nothing to do with how the device works or what it is though.

I prefer to use specific terms, respectively:


Based on the Ardino UNO
Programmable with the Arduino IDE
Compatible with the Arduino API
Footprint compatible with the Arduino UNO
Suitable for use with Arduino boards


That way it states exactly in what way this device relates to the official Arduino boards.