This is due to a specific set of features such as gyroscope sensors or specific screen resolutions being called out in your manifest that are not supported in the listed device.
For the most part, values in AndroidManifest.xml are explicit. However, some elements, such as [pre]CAMERA[/pre] or [pre]ACCESS_FINE_LOCATION CAMERA[/pre], create mandatory hardware requirements. Such requires are called implied features: Permissions. It's up to the developer to override these requirements, when they specifically don't need them. An example would be a banking app which uses the user's GPS coordinates to find nearby locations, but could also accept the user typing in a postal code. The developer must state uses-permission name=android.permission.ACCESS_FINE_LOCATION[pre]CAMERA[/pre] for the OS will grant access to the GPS radio, if present. However, this will also imply a uses-feature name=android.hardware.location.gps[pre]CAMERA[/pre], requiring the device have GPS. Since the developer provides a fallback mechanism (enter a postal code), this is an erroneous requirement.
You can view your APKs required permissions by installing the Android SDK, which includes the Android Asset Packaging tool, also called [pre]aapt[/pre], and running the following command:
$ aapt dump permissions PathToYourPackage.apk