It is not harder.
With doubly linked lists, when you insert, you will be allocating memory, and then you will be linking with either the head or the previous node, and with either the tail or the next node. When you delete, you will be unlinking from exactly the same, and then freeing memory. All these operations are symmetric.
This assumes that in both cases you have the node to insert/delete. (And in the case of insertion, that you also have the node to insert before, so in a way, insertion could be thought of as slightly more complicated.) If you are trying to delete having not the node to delete, but the payload of the node, then of course you are going to have to first search the list for the payload, but that's not a shortcoming of deletion, is it?
With balanced trees, the same applies: a tree generally needs balancing immediately after an insertion and also immediately after a deletion. It is a good idea to try and have only one balancing routine, and apply it after each operation, regardless of whether it was an insertion or a deletion. If you are trying to implement an insertion which always leaves the tree balanced, and also a deletion which always leaves the tree balanced, without having the two share the same balancing routine, you are unnecessarily complicating your life.
In short, there is no reason why one should be harder than the other, and if you are finding that it is, then it is in fact possible that you are a victim of the (very human) tendency of finding it more natural to think constructively than subtractively, meaning that you might be implementing deletion in a way which is more complicated than it needs to be. But that's a human issue. From a mathematical standpoint, there is no issue.