A DAG describes a wide variety of data structures and choices. Bitcoin is a DAG.
Actually wouldn't any sort of structure that prevents double spending have to be a dag? In order to prevent double spending you need to put transactions in topological order (to know how much money the account has). If you can do that your data structure is a DAG.
A block chain is a special sub-type of DAG in which (1) there is only one edge from each node to a predecessor, and (2) there is only one canonical path through the DAG at any given time and there exists an objective set of rules for selecting this path. Usually nodes that are not part of this path are eventually forgotten in a block chain.
Actually wouldn't any sort of structure that prevents double spending have to be a dag? In order to prevent double spending you need to put transactions in topological order (to know how much money the account has). If you can do that your data structure is a DAG.