Strictly speaking, no the seller should not do this. However, there is no way Ebay can make a seller complete a sale.
You can leave feedback to show your disappointment.
If the seller cancelled because the item was 'out of stock' they do get a defect on their selling account.
"There are two ways to be fooled. One is to believe what isn't true; the other is to refuse to believe what is true.”
Søren Kierkegaard, Danish philosopher (1813 - 1855)