Dave, you are allowed to deduct business expenses on your Schedule C. The scenarios you presented are more of the hobby nature. A business is expected to generate a profit. You can fail to make that profit, and you can deduct the loss against other income, but only if you were in it to make a profit, and trying to make a profit.
If you take a shop where you have to lay out more than you will receive in return -- where's the profit motive? Not saying there isn't one; I took a reimbursement-only dining shop to get in with the company and get experience with that kind of shop. We ran over about $10 (I didn't know I could use a coupon that would have prevented that) and I deducted the full tab against the reimbursement I got. But if you do it more than once or twice, the rationale for how doing that at a loss supports your profit motive falls apart.
What I do (since the company reimbursed me on the same check with the fee) is report every dime I get for mystery shopping as "income" and take the reimbursements on the line for "returns and allowances." I justify this because the money was "returned" to the company (in advance) before I was paid for it. It's also fine to ignore the reimbursement and what you laid out to get it. But this muddies the water if the MSC includes the reimbursement on the 1099. It's far easier to report all the income and deduct all the paid outs than to try to sort out which MSC included the reimbursement on the 1099 and which did not.
The net result is what the IRS cares about: you received $1000 and spent $150 to do so therefore you will pay tax on $850. How you arrive at the $850 is not as important as arriving at the correct net result and having the records to back it up.
Time to build a bigger bridge.