несколько причин:
1) div более семантически корректен в большинстве случаев. люди, которые кодируют свои сайты в структуре таблиц, не используют таблицы для того, для чего они созданы, то есть для табличных данных. div представляет собой «раздел» или раздел страницы, поэтому правильнее помещать элементы в div.
2) div более гибкие, их легче стилизовать и поддерживать. вам не нужно писать <table><tr><td>Text here</td></tr></table>
каждый раз, когда вы хотите что-то сказать, когда вы можете просто написать <div>Text here</div>
. вы можете добавить CSS-хуки (т. е. классы или элементы) как к таблицам, так и к div-элементам, но с помощью div-ов это становится гораздо более гибким.
3) сайты с табличной структурой просто безобразны:)