I am curious to hear if there is a specific design principle that is guiding that approach.
There is one - it's called: It depends.
If the buttons are below the table, they may also be below the fold. This could be a problem in its own as users will have to scroll to learn about the available functionality.
If there are many table rows and users have to scroll in order to see them all, having the top buttons and header scroll as well could be problematic. Ideally only the table rows scroll - the header and top 'toolbar' remain in view. With such setup, the performance effort between a button at the top or bottom is negligible.
Then, although may well not be your case, the bottom of the table is where you see summaries and legends. It can get a bit busy if the buttons are there as well.
So it really all depends on the specifics of the system under question. Bulk actions at the bottom may well serve an optimal design - all other things taken into account.