Herbert's solution will cause the directory to be created any time you issue the
pdflatex command. It only works from the command line, and can't be used within TeXShop itself.
Personally I would implement this using TeXShop's "engine" scripts, so that the basic pdflatex command stays the same, and you can selectively decide whether a particular document goes into an output folder or not.
To do this, make the following shell script:
mkdir -p output
pdflatex --output-directory=output --file-line-error --shell-escape --synctex=1 "$1"
Save this as
~/Library/TeXShop/Engines/pdflatex-output.engine and make it executable:
chmod +x ~/Library/TeXShop/Engines/pdflatex-output.engine
If you restart TeXShop, you will now have a new Engine "pdflatex-output" that is available in the pull-down menu beside the Typeset button on your source window.
You can choose this as the Engine to do your typesetting, or you can put
% !TEX TS-program = pdflatex-output
as the first line of your source file, and that engine will automatically be chosen. (You can insert the line manually or you can choose it using the Program macro from the Macros menu.)
This solution gives you the flexibility of having the output directory be used only when you want it to be used.
One problem with the solution above is that TeXShop can no longer find the resultant
.pdf file, since it assumes that it is in the same directory as the
.tex source. As you've agreed in the comments, it would be acceptable to have all the auxiliary files (
.bbl, etc.) in the output directory and leave the
.pdf file in the same folder as the
.tex file. Here's another script written in Python from Marcus Whybrew which does exactly that.
However, rather than following the installation instructions there (which I don't recommend), you should use this script as an engine, just like the simpler
bash script above.