We belong to both, but prefer BJ's because of the coupons but also because of the customer service. (They accept manufacturer's coupons as well as their own coupons. Costco only takes their own coupons.) Their store brands are both fine and the pricing is okay, given the size/quantity they sell.
The meat department at BJs will do some simple butchering at no charge (cutting a roast into chops, for example) - the Costco butchers are always too busy. Ditto for the cheese department - if I buy a block of Locatelli Romano, BJs will grate it for me, Costco doesn't offer that service.
I've bought eyeglasses from BJs and the customer service was very good. I tried the two-in-one lenses (distance+reading) and hated them. BJs took them back and gave me a credit towards different glasses, which they rush-ordered at no extra charge.
Many times, I have asked customer service for something at Costco (like Universal tickets) and been told they were out of stock. Later, I would find a display in the store with exactly what I wanted, in stock!
I rarely buy produce at Costco because of the package sizes - the food would spoil before we could use it all. I find BJs has smaller (but not supermarket-sized) packages in meat, produce, and staples. If you buy something that's individually packaged/UPC'ed (like their three-pack of ketchup), you can use the manufacturer's coupons for each item.
BJ's furniture and clothing selections are more to my taste, but that could be a neighborhood thing. Different stores will have different items to select from, whereas Costco is whatever they're advertising in their booklets.
One last note: Costco's hours are more limited than BJs. DH and I always liked to shop on Saturday nights and Costco would close at 5pm. BJs near us always opened earlier than Costco, so that helped us decide initially to go with BJs instead of Costco. When we moved, we found that Costco's closer, so that's why we have a membership now, but I'd rather go to BJ's.