Both link records on two objects. The difference is how tightly the child is bound to the parent.
A Lookup Relationship is a loose link — the child can exist without a parent (the field is optional by default), the child has its own Owner, and deleting the parent doesn't delete the child. Sharing on the two objects is independent. Use lookups when the child has standalone meaning, like Contact -> Account: a contact lives whether or not the account does.
A Master-Detail Relationship is a tight link — the child must have a parent, the child has no Owner field (it inherits sharing and ownership from the master), and deleting the master cascades to delete all detail records. The child also can't have its own org-wide default; security flows from the parent. Use master-detail when the child is meaningless without the parent — for example Opportunity Line Item -> Opportunity, or any junction object representing a many-to-many link.
A Junction Object is the canonical use case for master-detail: it has two master-detail fields, one to each side of the many-to-many. The two parents own and share the junction record jointly.
You can convert lookup -> master-detail (only if every child record already has a non-null parent) and master-detail -> lookup (with caveats). Converting in either direction has side effects on sharing and roll-up summaries, so it's not casual.
