<li>
будет работать как внутри <div>
, так и <ul>
, как вы заметили.Однако единственным приемлемым дочерним элементом для <ul>
является <li>
, тогда как практически все может быть дочерним для <div>
.
В остальном различия в основном семантические.Если у вас есть CSS, который влияет только на списки, или просто для того, чтобы ваши списки различались в DOM, используйте <ul>
(или <ol>
).Используйте <div>
, когда вам требуется более гибкий универсальный контейнер.