If you don't specify the mappedName in the @Resource injection, it will try to do a java://comp/env lookup which is only accessiable local to the component that defined it. In this case this is the test.jar(ejb component), but the Resource lookup is actaully happening from the arquillian-protocol.war (web component).
OK, thanks. I changed the mapping to mappedName = "java:/lunchDS" and got an exception about not getting a managed exception, but that means the datasource was injected.
Thank you guys.