Because that is where the operating system wants them put.
In theory, the app developers could maybe put them on the SD card if they wanted to do an extra amount of coding, which no one wants to do. Plus, there are bad things that can happen to apps on SD cards.
The better programs let the use pick where the app data is getting stored (SD card or internal storage). Many apps don't do this. Of your apps that use lots of storage space (camera, games, maps, GPS navigation) check the settings in each app to see if they let you put the data on the SD card.