bool result = pizza.Intersect(allIngred).SequenceEqual(pizza);
Intersect() gives you all of the members that are shared between the two arrays, and SequenceEqual() identifies whether the result set is the same as the provided argument (in this case you want to see if all pizza ingredients are in allIngred).
Note that this will not necessarily work if you reverse the arrays:
bool result = allIngred.Intersect(pizza)…
because the result set of Intersect will be ordered according to the first argument, and you need the results to match pizza.
Adding ordering explicitly would be safer for dealing with IEnumerable<T>, where ordering is not guaranteed:
bool result = pizza.Intersect(allIngred).OrderBy(x => x).SequenceEqual(pizza.OrderBy(x => x));
For this particular requirement, you can optimize by just checking the Count() of items after the call to Intersect() against the length of the pizza array.