$O(n)$ in BST means it was case degraded to Single Linked List, but it still has two pointers per node, while linked list has only one. But for balanced or almost balanced tree, the operations are $O(\log n)$. You can keep it balanced (using for example AVL tree or Red Black Tree, where both differ in cost of insert and delete by constant factor).
Linked list allows you to traverse in one direction, Doubly Linked List allows you to move in the both directions, it has two pointers per node, also if you do not use traversal in one direction, the cost of insert / delete is lower for Single Linked List. The notation makes this constant disappear. So taking memory footprint, actual time per unit operation, size of data stored, your needs and time to implement given data structure makes them differ a lot.
Also there are structures like Fibonacci heap, very good asymptotically, but rather heavy on small data and harder to implement.
There is no such structure that fits every situation and optimizes every possible feature, otherwise we would use only this one and learn about others for educational purposes only (or to stop people from reinventing the wheel).