Waitrose direct offer free delivery for orders over £50.
For Ocado you can pay anything from 99p to about £6 per delivery, and orders have to be over £75. Unless you join their DD delivery fee scheme, for about £10 a month, which means you can have as many orders over £40 without incurring further delivery costs (or as they annoying claim "for free"?!)
IMHE the Waitrose delivery Best Before dates have not been so long as the Ocado ones - their driver told me that they have to allow a minimum of 3 days expiry on goods when packing, but that does mean you can get stuff which needs to be used up within a couple of days. On average, the Ocado milk, for example, comes with 6 days expiry.
All of Ocado's stuff is pre-packed, whereas with Waitrose you can specify, for example, X grammes of such-and-such a product from their fresh fish / deli / bakery counters - so they are bit more flexible with regard to actual products sold.
Ocado is not owned by Waitrose or part of the JL partnership, so the working conditions of the people who pack and delivery your groceries may not be the same as those of the Waitrose people (which are fairly good in the supermarket sector). This might also mean that you get more points if you're paying with a JLP card (which gives you 2% back on purchases from John Lewis shops (including Waitrose, but maybe not Ocado anymore).