The answer is no, not all Android phones can run all Android apps. Anyone who says that all Android phones can run all apps is misinformed. It is identical to the situation with Windows PCs. Some PCs are simply too old and not powerful enough to run the newest version of Windows or the most demanding software and games.
There are different phones with massively different hardware(processors ranging from sub 500Mhz single core to dual core 1.5Ghz, resolutions as low as 320x480 all the way up to 1280x720, under 256MB of RAM to 1GB, large differences in 3D processing power, and large differences in storage capacity) that also run different versions of Android.
Applications are developed with a certain bare minimum of hardware requirements and Android version requirements that are entirely up to the individual developer to choose. There is an option for the developer to make their application not appear in the market at all if your phone does not support it but not all of them do this.